Hi L~R. Im just curious about one part of your solution:
for ( sort { $data[$a]->[2] <=> $data[$b]->[2] } 0 .. $#data ) { print join "\t" , @{ $data[$_] }; print "\n"; }
Why did you code it this way I wonder? It seems odd that you are actually sorting a list of indexes and not the elements themselves. Theres no speed gain, in fact theres a loss in that each element requires two levels of dereferencing, and you have the added memory hit of constructing a list of indexes. Im really curious if there was any reason why you didnt just say
print join("\t",@$_),"\n" for sort { $a->[2] <=> $b->[2] } @data;
or possibly:
print join "\n",map { join "\t",@$_ } sort { $a->[2] <=>$b->[2] } @dat +a;
First they ignore you, then they laugh at you, then they fight you, then you win.
-- Gandhi
In reply to Re^6: sort array by value in it
by demerphq
in thread sort array by value in it
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |