perl的排序和比较

前端之家收集整理的这篇文章主要介绍了perl的排序和比较前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

 

perl 比较操作符列表: 

Numbers Strings
< lt
> gt
<= le
>= ge
== eq
<=> cmp
!= ne

 

<=> 和cmp的详细解释: 

Relation of $a and $b Value Returned by $a <=>
$a greater than $b 1
$a equal to $b 0
$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...)

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

 

完! 

猜你在找的Perl相关文章