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
[mailto:[EMAIL PROTECTED]]
Sent: Monday, December 30, 2002 16:29
To: 'Mark Anderson'; [EMAIL PROTECTED]
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 ???

-Praveen




-----Original Message-----
From: Mark Anderson [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, 31 December 2002 10:23 AM
To: Rajendra Babu, Praveen; [EMAIL PROTECTED]
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

                                /\/\ark

-----Original Message-----
From: Rajendra Babu, Praveen
[mailto:[EMAIL PROTECTED]]
Sent: Monday, December 30, 2002 3:16 PM
To: '[EMAIL PROTECTED]'
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
documentation.

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

IMPORTANT-
(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 <www.acnielsen.com.au> or contact us on
[EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


**********************************************************
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.
****************************************************************


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to