现在的位置: 首页 > 综合 > 正文

perl的排序和比较

2011年06月26日 ⁄ 综合 ⁄ 共 847字 ⁄ 字号 评论关闭

来自: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...)(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;

 

完! 

抱歉!评论已关闭.