In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/a9320c62d9034275ce0ce1fa301011823fbbe2a4?hp=4fd19576a68c8e855a000d6fbe59c4761919e185>
- Log ----------------------------------------------------------------- commit a9320c62d9034275ce0ce1fa301011823fbbe2a4 Author: Bram <[email protected]> Date: Sun Jun 28 12:38:03 2009 +0200 Extra examples for 'sort' ----------------------------------------------------------------------- Summary of changes: pod/perlfunc.pod | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod index 4593352..2169a44 100644 --- a/pod/perlfunc.pod +++ b/pod/perlfunc.pod @@ -5365,6 +5365,24 @@ Examples: use sort '_mergesort'; # note discouraging _ @new = sort { substr($a, 3, 5) cmp substr($b, 3, 5) } @old; + +Warning: Care is required when sorting the list returned from a function. + +If you want to sort returned by the function call: find_records(@key) then +you can use: + @contact = sort { $a cmp $b } find_records @key; + @contact = sort +find_records(@key); + @contact = sort &find_records(@key); + @contact = sort(find_records(@key)); + +If instead you want to sort the array @key with the comparison routine +find_records then you can use: + @contact = sort { find_records() } @key; + @contact = sort find_records(@key); + @contact = sort(find_records @key); + @contact = sort(find_records (@key)); + + If you're using strict, you I<must not> declare $a and $b as lexicals. They are package globals. That means if you're in the C<main> package and type -- Perl5 Master Repository
