develooper Front page | perl.beginners | Postings from December 2002

RE: Sorting hash "values"

Thread Previous | Thread Next
Wagner, David --- Senior Programmer Analyst --- WGO
December 30, 2002 20:55
RE: Sorting hash "values"
Message ID:
	I takes the keys from the %hash and uses them to compare the the
data within the hash and since it is $b vs $a and not $a vs $b it is in
descending vs ascending sequence. For each key in %hash it then gets
assigned to key and you now have the key and data sored by value of the hash
and not the key.

Wags ;)

-----Original Message-----
From: Rajendra Babu, Praveen
Sent: Monday, December 30, 2002 16:29
To: 'Mark Anderson';
Subject: RE: Sorting hash "values"

Hello /\/\ark,
     Thanks for your reply. The below code does exactly what I wanted to do
and guess where did I get it ?! - perldoc -f sort !!!
%hash = (
         "h" => 100,
         "a" => 200,
         "z" => 50,
         "b" => 600
foreach $key ( sort { $hash{$b} <=> $hash{$a} } keys %hash  )
  print "The key is $key \t";
  print $hash{$key}, "\n";

 But I can't really get the way the below statement works, esp. the using of
subroutine by "sort" function:
"foreach $key ( sort { $hash{$b} <=> $hash{$a} } keys %hash  )"

Can someone please explain ???


-----Original Message-----
From: Mark Anderson []
Sent: Tuesday, 31 December 2002 10:23 AM
To: Rajendra Babu, Praveen;
Subject: RE: Sorting hash "values"

It helps to answer your question if you show us what you've already done,
and tell us what you know...

perldoc -f keys
perldoc -f sort


-----Original Message-----
From: Rajendra Babu, Praveen
Sent: Monday, December 30, 2002 3:16 PM
To: ''
Subject: Sorting hash "values"

%hash = (
         "h" => 100,
         "a" => 200,
         "z" => 50,
         "b" => 600

For the above %hash, I want to sort them by "values"(rather than keys) and
print-out the sorted key-value pair. Can it be done ??
The output needs to look like the below:

b  600
a  200
h  100
z  50

  Your esteemed ideas/suggestions please.......

-----End Original Message-----

See top of message (if you haven't already) for pointers to relevant

for my $key (sort {$hash{$b} <=> $hash{$a}} keys %hash) {print

(1) The contents of this email and its attachments are confidential and 
intended only for the individual or entity named above. Any unauthorised
use of the contents is expressly prohibited.  If you receive this email 
in error, please contact us, then delete the email.
(2) ACNielsen collects personal information to provide and market our 
services. For more information about use, disclosure and access see our 
privacy policy at <> or contact us on

To unsubscribe, e-mail:
For additional commands, e-mail:

This message contains information that is confidential
and proprietary to FedEx Freight or its affiliates.
It is intended only for the recipient named and for
the express purpose(s) described therein.
Any other use is prohibited.

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About