Further to hippo's post: Note that going a step further and enabling strictures with usestrict; would have prevented the code from compiling in the first place:
(I have to admit the Global symbol "@a" requires explicit package name ... etc messages are slightly more obscure, but they explicitly point you to the offending variable.)c:\@Work\Perl\monks>perl -le "use strict; use warnings; ;; my @ar = ([1,12],[8,3],[4,57],[22,5]); my @sort = sort{$a[1]<=>$b[1]}@ar; foreach (@sort){ print \"@$_\n\";} " Global symbol "@a" requires explicit package name at -e line 1. Global symbol "@b" requires explicit package name at -e line 1. Execution of -e aborted due to compilation errors.
See also How do I sort an array by (anything)? in the Data: Arrays section of perlfaq4.
Give a man a fish: <%-{-{-{-<
In reply to Re: sorting array of arrays
by AnomalousMonk
in thread sorting array of arrays
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |