- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一) sort 函数用法
sort LIST
sort BLOCK LIST
sort SUBNAME LIST
sort 的用法有如上 3 种形式。它对 LIST 进行排序,并返回排序后的列表。假如忽略了
SUBNAME 或 BLOCK ,sort 按标准字串比较顺序来进行(例如 ASCII 顺序)。如果指定了
SUBNAME ,它实际上是个子函数的名字,该子函数对比 2 个列表元素,并返回一个小于,
等于,或大于 0 的整数,这依赖于元素以何种顺序来 sort (升序,恒等,或降序) 。也可提
供一个 BLOCK 作为匿名子函数来代替 SUBNAME ,效果是一样的。
被比较的 2 个元素,会被临时赋值给变量 $a 和 $b 。它们以引用传递,所以不要修改 $a
或$b 。假如使用子函数,它不能是递归函数。
二) 用法实例
1. 以数字顺序 sort
代码如下 :
@array = (8, 2, 32, 1, 4, 16);
print join(' ', sort {$a <=> $b} @array), "\n";
打印结果是:
复制代码 代码如下 :1 2 4 8 16 32
与之一样的是:
复制代码 代码如下 :sub numerically { $a <=> $b };
print join(' ', sort numerically @array), "\n";
这个很容易理解哦,它只是按自然数的顺序进行 sort ,偶就不细讲了。
2.1 以 ASCII 顺序 (非字典顺序 )进行 sort
代码如下 :
@languages = qw(fortran lisp c c++ Perl python java);
print join(' ', sort @languages), "\n";
打印结果:
复制代码 代码如下 :Perl c c++ fortran java lisp python
这等同于:
复制代码 代码如下 :print join(' ', sort { $a cmp $b } @languages), "\n";
按 ASCII 的顺序进行排序,也没什么说的哦。
注意,如果对数字按 ASCII 顺序进行 sort 的话,结果可能与你想的不同:
代码如下 :
print join(' ', sort 1 .. 11), "\n";
1 10 11 2 3 4 5 6 7 8 9
2.2 以字典顺序 sort
代码如下 :
use locale;
@array = qw(ASCII ascap at_large atlarge A ARP arp);
@sorted = sort { ($da = lc $a) =~ s/[/W_]+//g;
($db = lc $b) =~ s/[/W_]+//g;
$da cmp $db;
} @array;
print "@sorted\n";
打印结果是:
复制代码 代码如下 :A ARP arp ascap ASCII atlarge at_large
use locale 是可选的 -- 它让 code 兼容性更好, 假如原始数据包含国际字符的话。 use locale
影响了 cmp,lt,le,ge,gt 和其他一些函数的操作属性 --更多细节见 perllocale 的 man page。
注意 atlarge 和 at_large 的顺序在输出时颠倒了,尽管
您可能关注的文档
- mha实现mysql主从数据库手动切换的方法.pdf
- MicrosoftAccess项目不能压缩的原因.pdf
- Microsoft数据平台开发与SQLServer2008(1).pdf
- modalviewcontroller的不同呈现方式.pdf
- ModalViewController的不同呈现方式_6.pdf
- MongoDBRemove函数的3个常见用法.pdf
- MongoDB基于Java、PHP的一般操作和用户安全设置(1).pdf
- Mosaic-从社区切入的精准营销.pdf
- MOTO手机业务的拐点.pdf
- MPS模块化加工系统实验指导书(8实验完整).pdf
- 2024年山东德州夏津县融媒体中心招聘4人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024年山东济南历城区卫生健康局所属事业单位招聘50人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024江苏徐州锡沂高新技术产业开发区招聘50人历年高频难、易点(行政职业能力测验共200题含答案解.docx
- 2024年山东德州职业技术学院招聘49人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024年山东德州高级师范学校招聘工作人员12人高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2023年12月恩施巴东县“才聚荆楚·智汇恩施”第二次专项事业单位工作人员7名笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东广州市黄埔区机关事务管理局招考聘用政府雇员笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广西马山县纪委监委机关面向社会公开招考基层廉洁监督员及防贫监测员笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东广州市增城区招考聘用教师(上海设点)92人笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东省茂名市电白区赴高校现场公开招聘62名教师314笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
文档评论(0)