perl的排序和比较

来自:http://www.perlfect.com/articles/sorting.shtml

perl 比较操作符列表: 

NumbersStrings
< lt
> gt
<= le
>= ge
== eq
<=> cmp
!= ne

<=> 和cmp的详细解释: 

Relation of $a and $bValue Returned by $a <=>
$a greater than $b1
$a equal to $b0
$a less than $b-1

如果你有未排序的 @not_sorted,想得到排序的@sorted:  

@sorted = sort { $a <=> $b } @not_sorted # numerical sort or@sorted = sort { $a cmp $b } @not_sorted # ASCII-betical sort or better@sorted = sort { lc($a) cmp lc($b) } @not_sorted # alphabetical sort

Get a list of hash keys sorted by value.

@sorted = sort { $hash{$a} cmp $hash{$b} } keys %hash;

Get a reverse sort of a list.

@sorted = sort { $b cmp $a } @list; Which can also be done with@sorted = reverse sort { $a cmp $b } @list;

Get an alphabetical sort of words, but make 'aardvark' always come last.

(Now, why you would want to do that is another question...)(Now, why you would want to do that is another question...)

@sorted = sort { if ($a eq 'aardvark') { return 1; } elsif ($b eq 'aardvark') { return -1; } else { return $a cmp $b; } } @words;

完! 


作者:iTech
微信公众号: cicdops
出处:http://itech.cnblogs.com/
github:https://github.com/cicdops/cicdops

原文地址:https://www.cnblogs.com/itech/p/2822064.html