in reply to sort behavior explanation required
Further to lidden's reply:
Perl would have given you a clue to what was going on had you allowed it to by enabling warnings.
c:\@Work\Perl\monks>perl -wMstrict -le "my @arr = ('jack', 80, 'martin', 3, 'allan', 'george'); ;; my @sort = sort { $a <=> $b } @arr; print qq{@sort}; " Argument "jack" isn't numeric in sort at -e line 1. Argument "martin" isn't numeric in sort at -e line 1. Argument "allan" isn't numeric in sort at -e line 1. Argument "george" isn't numeric in sort at -e line 1. jack martin allan george 3 80
See also Lexicographical order for more info on the cmp sort.
Update: See also Scalar values in perldata. Also, consider the following:
c:\@Work\Perl\monks>perl -wMstrict -le "my @ra = qw(foo 2bar 123baz quux999 x999x); for my $s ('', @ra) { no warnings 'numeric'; print qq{'$s' == }, 0+$s; } " '' == 0 'foo' == 0 '2bar' == 2 '123baz' == 123 'quux999' == 0 'x999x' == 0
|
|---|