You're close, but are missing what $a and $b are. They are not indexes, but are the actual array references.
by_third_item { return $a->[2] <=> $b->[2]; } ----- Original Message ----- From: "Charles Lu" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Sunday, February 24, 2002 12:27 PM Subject: sorting with complicated data structure > Hi all > > I am attempting to sort the following data. But I cannot get it to work. > Frankly i am not even sure I am allowed to do this in perl. Nonetheless I > hope anyone can give me some suggestions. > Here is the data structure > > $query->{$reference}->[0] = ['a','b', 9, 12]; > $query->{$reference}->[1] = ['c','d', 4, 15]; > $query->{$reference}->[2] = ['e','f', 8, 30]; > > so for example to print out the entire 1st array i would type > > print "@{ $query->{$reference}->[0] }"; > > I want to sort the above 3 arrays by their 3rd element in ascending order. > So the final correct order would be > > $query->{$reference}->[2] = ['a','b', 9, 12]; > $query->{$reference}->[0] = ['c','d', 4, 15]; > $query->{$reference}->[1] = ['e','f', 8, 30]; > > ############################################# > HERE IS MY CODE (IT DOESN'T WORK) > sub by_third_item { > > return $query->{$reference}->[$a][2] <=> $query->{$reference}->[$b][2]; > > } > > @sortedlist = sort by_third_item @{ $query->{$reference} }; > ############################################# > > When run, the program "hangs" and i had to kill it. Can anyone suggest what > I am doing wrong? Thank you. > > > charles > > > _________________________________________________________________ > MSN Photos is the easiest way to share and print your photos: > http://photos.msn.com/support/worldwide.aspx > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]