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>


Reply via email to