perlsort函数用法总结和使用实例

perlsort函数用法总结和使用实例

ID:27779776

大小:91.00 KB

页数:11页

时间:2018-12-06

perlsort函数用法总结和使用实例_第1页
perlsort函数用法总结和使用实例_第2页
perlsort函数用法总结和使用实例_第3页
perlsort函数用法总结和使用实例_第4页
perlsort函数用法总结和使用实例_第5页
资源描述:

《perlsort函数用法总结和使用实例》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、PerlSort函数用法总结和使用实例一)sort函数用法sortLISTsortBLOCKLISTsortSUBNAMELISTsort的用法有如上3种形式。它对LIST进行排序,并返回排序后的列表。假如忽略了SUBNAME或BLOCK,sort按标准字串比较顺序来进行(例如ASCII顺序)。如果指定了SUBNAME,它实际上是个子函数的名字,该子函数对比2个列表元素,并返回一个小于,等于,或大于0的整数,这依赖于元素以何种顺序来sort(升序,恒等,或降序)。也可提供一个BLOCK作为匿名子函数来代替SUBNAME,效

2、果是一样的。被比较的2个元素,会被临时赋值给变量和$1)。它们以引用传递,所以不要修改$a或$13。假如使用子函数,它不能是递归函数。二)用法实例1.以数字顺序Sort代码如下:array=(8,2,32,1,4,16);printjoin(’’,sort{$alt:二gt;$b}array),'ArT;打印结果是:复制代码代码如下:12481632与之一样的是:复制代码代码如下:subnumerically{$alt;=gt;$b}:printjoin(’’,sortnumericallyarray),/z/z:这个

3、很容易理解哦,它只是按自然数的顺序进行sort,偶就不细讲了。2.1以ASCII顺序(非字典顺序)进行sort代码如下:languages=qw(fortranlispcc++Perlpythonjava);printjoin(’’,sortlanguages),’ArT;打印结果:复制代码代码如下:Perlcc++fortranjavalisppython这等同于:复制代码代码如下:printjoin(’’,sort{$acmp$b}languages),’ArT;按ASCII的顺序进行排序,也没什么说的哦。注意,如果对

4、数字按ASCII顺序进行sort的话,结果可能与你想的不同:代码如下:printjoinC’,sortl..11),〃〃;11011234567892.2以字典顺序sort代码如下:uselocale;array=qw(ASCIIascapat_largeatlargeAARParp);sorted=sort{($da=lc$a)=〜s/[/W_]+//g;($db=lc$b)=〜s/[/W」+//g;$dacmp$db:}array;print〃sorted〃:打印结果是:复制代码代码如下:AARParpasca

5、pASCllatlargeat_largeuselocale是可选的一它让code兼容性更好,假如原始数据包含国际字符的话。uselocale影响了cmp,It,le,ge,gt和其他一些函数的操作属性一更多细节见perllocale的manpage。注意atlarge和at」arge的顺序在输出时颠倒了,尽管它们的sort顺序是一样的(sort中间的子函数删掉了atjarge中间的下划线)。这点会发生,是因为该示例运行在perl5.005_02上。在perl版本5.6前,sort函数不会保护有一样values的keys的

6、先后顺序。perl版本5.6和更高的版本,会保护这个顺序。注意哦,不管是map,grep还是sort,都要保护这个临时变量$_(sort里是鉍和讣)的值,不要去修改它在该code里,在对$a或$b进行替换操作s/[/W_]+//g前,先将它们重新赋值给$da和$(1b,这样替换操作就不会修改原始元素哦。3.以降序sort降序sort比较简单,把cmp或It;=gt;前后的操作数调换下位置就可以了。复制代码代码如下:sort{$blt;=gt;$a}array;或者改变中间的块或子函数的返回值的标记:复制代码代码如下:sor

7、t{-($aIt:=gt:$b)}array;或使用reverse函数(这有点低效,但也许易读点):复制代码代码如下:reverses。rt{$alt;=gt:$b}array:4.使用多个keys进行sort要以多个keys来sort,将所有以or连接起来的比较操作,放在一个子函数里即可。将主要的比较操作放在前面,次要的放在后面。代码如下:林Anarrayofreferencestoanonymoushashesemployees=({FIRST^gt:’Bi11’,LAST=gt;’Gates’,SALARY=gt;6

8、00000,AGE二gt;45},{FIRST=gt;’George’,LAST=gt;’Tester’SALARY=gt:55000,AGE二gt;29},{FIRST=gt;’Steve’,LAST=gt;’Ballmer’,SALARY=gt;600000,AGE=gt;41}{FIRST=gt;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。