On Oct 6, Rose, Jeff said:
I have been trying to sort a hash but I cannot figure it out for the
life of me
I've fixed a bit of the formatting below...
my %message = (
$messageid => {
From => $from,
To => $to,
To_Num => $num,
Sub_IP => $ip,
Subject => $subject,
},
...
)
foreach (sort {$message{$_}->{'To_Num'}[$a] <=>
$message{$_}->{'To_Num'}[$b]} keys (%message)) {
}
foreach (sort {$message{$a} cmp $message{$b}} keys (%message)) {
foreach (sort {$message{$_}->{'To_Num'}[$a] <=>
$message{$_}->{'To_Num'}[$b]} keys (%message)) {
You keep putting $a and $b all the way at the "end" of the things you're
sorting. I don't think you actually know what $a and $b are. $a and $b
represent two elements of the list you're sorting -- this means they're
two keys from %message. This means the ONLY place it makes sense for them
to be is $message{$a} and $message{$b}. To sort my the 'To_Num' field,
then, you would do:
sort { $message{$a}{To_Num} <=> $message{$b}{To_Num} } keys %message
--
Jeff "japhy" Pinyan % How can we ever be the sold short or
RPI Acacia Brother #734 % the cheated, we who for every service
http://www.perlmonks.org/ % have long ago been overpaid?
http://princeton.pm.org/ % -- Meister Eckhart
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>