- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PerlSort函数用法总结和使用实例
一)sort函数用法 sortLIST
sortBLOCKLIST
sortSUBNAMELIST
sort的用法有如上3种形式。它对LIST进行排序,并 返回排序后的列表。假如忽略了 SUBNAME或BLOCK, sort 按标准字串比较顺序来进行(例如ASCII顺序)。如果指定 了 SUBNAME,它实际上是个子函数的名字,该子函数对比2 个列表元素,并返回一个小于,等于,或大于0的整数, 这依赖于元素以何种顺序来sort (升序,恒等,或降序)。 也可提供一个BLOCK作为匿名子函数来代替SUBN AME,效 果是一样的。
被比较的2个元素,会被临时赋值给变量和$1)。它 们以引用传递,所以不要修改$a或$13。假如使用子函数, 它不能是递归函数。
二)用法实例
1.以数字顺序S ort
代码如下:
a rray= (8, 2, 3 2, 1,4, 16);
print join (’’,sort {$al t:二 gt; $b}ar ray),ArT ;
打印结果是:
复制代码代码如下与之一样的是:
复制代码代码如下:subn umerically {$alt ;=gt ;$b }: print jo in (’ ’,sortn umericallya rray),/z\n/z:
这个很容易理解哦,它只是按自然数的顺序进行sort,
偶就不细讲了。
2. 1以ASC II顺序(非字典顺序)进行sort 代码如下:
languages =qw(fortran lispcc++Per lpythonjava ); print jo in(’ ’,sortl anguages), ’ArT;
打印结果:
复制代码代码如下:Pe rlcc++fortr anjavalispp ython 这等同于:
复制代码代码如下:p rint join (’ ’,sort {$acmp $b} language s), ’ArT;
按ASCII的顺序进行排序,也没什么说的哦。
注意,如果对数字按A SCII顺序进行sor t的话,结 果可能与你想的不同:
代码如下:
printjoinC ’,sortl. . 11 ), 〃\n〃;
1101 123456789 2.2以字典顺序sort
代码如下: useloca le;
array=qw (ASCIIasc apat_largea tlargeAARPa rp);
sorte d=sort {($da =lc$a) =?s/ [/W_] +//g;
($db=lc$b)=?s/[/W」+//g;
$dacmp$db :
}array;
pri nt〃sorted\n 〃:
打印结果是:
复制代码代码如下:AAR ParpascapAS Cllatlargea
t_large
us elocale是可选的一它让code兼容性更好,假如原 始数据包含国际字符的话。usel ocale影响了 cmp , It, le, ge, g t和其他一些函数的操作属性一更多细节 见 pe rllocale 的 ma npage。
注意a tlarge和at」arge的顺序在输出时颠倒了, 尽管它们的so rt顺序是一样的(so rt中间的子函数删掉 了atjarge中间的下划线)。这点会发生,是因为该示例运 行在pe rl5. 005_02上。在perl版本5. 6前,sort函数不 会保护有一样values的keys的先后顺序。p erl版本5. 6 和更高的版本,会保护这个顺序。
注意哦,不管是m ap,grep还是so rt,都要保护这个
临时变量$_ (sort里是鉍和讣)的值,不要去修改它
在该cod e里,在对$a或$b进行替换操作
s/[/W_]+//g前,先将它们重新赋值给$da和$(1 b,这样替 换操作就不会修改原始元素哦。
3.以降序sort
降序s ort比较简单,把cm p或It ;=gt;前后的操作数 调换下位置就可以了。
复制代码代码如下:sort {$bl t;=gt;$a}ar ray;
或者改变中间的块或子函数的返回值的标记:
复制代码代码如下:sort {-($a It: =gt: $b)}array;
或使用reverse函数(这有点低效,但也许易读点):
复制代码代码如下:reverses。rt{$alt;=gt :$b}array: 4 .使用多个keys进行sort
要以多个k eys来sort,将所有以or连接起来的比较 操作,放在一个子函数里即可。将主要的比较操作放在前 面,次要的放在后面。
代码如下:
林A narrayofref erencestoan onymoushash es emp
您可能关注的文档
- MATLAB在优化模型中的应用.doc
- matlab中主成分分析的函数1.doc
- matlab综合实验周实验报告.doc
- MAX7219共阴极LED驱动器程序.doc
- MBR在脱氮除磷方面的研究与进展.doc
- mda装置工艺技术说明书.doc
- mdba装置静设备检查表.doc
- ME50+5038A3门式起重机设计计算书.doc
- mf47型万用表组装实验报告.doc
- mfc简单绘图程序报告.doc
- 中国国家标准 GB/T 32857-2025保护层分析(LOPA)应用导则.pdf
- 《GB/T 32857-2025保护层分析(LOPA)应用导则》.pdf
- GB/T 20736-2025传动用精密滚子链和板式链疲劳试验方法.pdf
- 《GB/T 20736-2025传动用精密滚子链和板式链疲劳试验方法》.pdf
- 中国国家标准 GB/T 20736-2025传动用精密滚子链和板式链疲劳试验方法.pdf
- 2026年毛概期末考试试题库附参考答案(研优卷).docx
- 2026广东省四会市教育局赴高校招聘教师98人(第一轮)备考题库附答案.docx
- 2026年重庆青年职业技术学院单招(计算机)测试模拟题库附答案.docx
- 2026年黑龙江三江美术职业学院单招(计算机)考试参考题库推荐.docx
- 2025年浙商银行嘉兴分行四季度社会招聘备考题库附答案.docx
原创力文档


文档评论(0)