sort List
sort BLOCK List
sort SUBname List
sort的用法有如上3种形式。它对List进行排序,并返回排序后的列表。假如忽略了SUBname或BLOCK,sort按标准字串比较顺序来进行(例如ASCII顺序)。如果指定了SUBname,它实际上是个子函数的名字,该子函数对比2个列表元素,并返回一个小于,等于,或大于0的整数,这依赖于元素以何种顺序来sort(升序,恒等,或降序)。也可提供一个BLOCK作为匿名子函数来代替SUBname,效果是一样的。
被比较的2个元素,会被临时赋值给变量$a和$b。它们以引用传递,所以不要修改$a或$b。假如使用子函数,它不能是递归函数。
如果key按照ASCII排序的话
foreach my $item (sort {$a cmp $b} keys %hash){
print "$item == > $hash{$item}","/n";
}
如果key按照ASCII逆排序的话,以上代码将 $a 和 $b 互换。
如果value按照ASCII排序的话
foreach my $item (sort { $hash{$a} cmp $hash{$b} } keys %hash ){
print "$item == > $hash{$item}","/n";
}
如果将value按照ASCII逆排序的话,以上代码将 $hash{$a} 和 $hash{$b} 互换。
如果按照数字排序的话,代码和以上类似,只是将 cmp 换成符号 <=> 。以key按照数字由小到大为例:
foreach my $item (sort {$a <=> $b} keys %hash){
print "$item == > $hash{$item}","/n";
}
以上是内存溢出为你收集整理的关于perl hash输出排序问题全部内容,希望文章能够帮你解决关于perl hash输出排序问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)