PerlSort函数用法总结和使用实例.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档