Perl技巧 sort函数使用
发布时间:2020-12-15 23:58:07 所属栏目:大数据 来源:网络整理
导读:Perl中的sort函数是可以帮助我们解决排序问题的函数。 主要格式分为2种: @sorted = sort @array; @sorted = sort{sub cmp} @array; 从官方文档来看,主要分文以下几种常用法则: 按字符的一般排序 @sorted = sort @array; 与上一种方法相同 @sorted = sort{
Perl中的sort函数是可以帮助我们解决排序问题的函数。
主要格式分为2种:
从官方文档来看,主要分文以下几种常用法则:
按字符的一般排序
@sorted = sort @array;
与上一种方法相同
@sorted = sort{$a cmp $b} @array;
按字符排序,不分大小写
@sorted = sort{fc($a) cmp fc($b)} @array;
按字符逆序排序,等同于reverse
@sorted = sort{$b cmp $a} @array;
比较数值的排序
?@sorted = sort{$a <=> $b} @array;
比较哈希的值,得到key的数组
@sorted = sort{$age{$a} <=> $age{$b}} keys(%age);
同上一样的效果,用sub的写法
sub byage{
? ? ?$age{$a} <=> $age{$b};
}
@sorted = sort byage?keys(%age);
代码举例
#1 :
#! /usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash = ( "li" => 3,"wang" => 15,"qing" => 9,"hua" => 1 ); my @keys_arr = keys(%hash); my @sorted_arr = sort{$hash{$a} <=> $hash{$b}} @keys_arr; print Dumper(@sorted_arr);
输出结果 :
dxxu@rlsj-dxxu:/home/dxxu>{102}perl sort_keyword.pl $VAR1 = [ 'hua','li','qing','wang' ];
#2 :?
#! /usr/bin/perl use strict; use warnings; use Data::Dumper; my @words = ("first","aaa","Asss","new","other","skill","jordan","last"); print "sort normally ====n"; my @normal_sorted = sort @words; print Dumper(@normal_sorted); my @special_sorted = sort{ if ($a eq "first"){ return -1; } elsif($b eq "first"){ return 1; } elsif ($a eq "last"){ return 1; } elsif($b eq "last"){ return -1; } else{ return ($a cmp $b); } } @words; print "sort specially ====n"; print Dumper(@special_sorted);
输出结果 :
sort normally ==== $VAR1 = [ 'Asss','aaa','first','jordan','last','new','other','skill' ]; sort specially ==== $VAR1 = [ 'first','Asss','skill','last' ]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |