Perl's sort comparison function is sort of based on C's sort comparison function.
The only thing that Perl's sort requires is that the function returns a negative number, zero or a positive number. You can use the <=> or cmp operators or any other method you choose.
For example:
$ perl -MList::Util=shuffle -le' my @x = shuffle 1 .. 20; print "@x"; my @y = sort { $a <=> $b } @x; print "@y"; my @z = sort { $a - $b } @x; print "@z" ' 7 10 16 20 14 15 4 18 19 17 6 5 8 9 2 13 1 3 11 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $ perl -MList::Util=shuffle -le' my @x = shuffle -10 .. 10; print "@x"; my @y = sort { $a <=> $b } @x; print "@y"; my @z = sort { $a - $b } @x; print "@z" ' -1 -7 -4 1 4 -9 10 -3 0 -8 -6 -2 8 -10 5 6 9 -5 2 3 7 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
In reply to Re: Notation of sort function
by jwkrahn
in thread Notation of sort function
by Alphaphi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |