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'
];
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
