• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >perl > Perl Sort函数用法总结和使用实例

Perl Sort函数用法总结和使用实例

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了perl sort,perl sort函数,perl sort a b,sort in perl,perl中sort等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一) 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    

与之一样的是:

这个很容易理解哦,它只是按自然数的顺序进行sort,偶就不细讲了。

2.1 以ASCII顺序(非字典顺序)进行sort

打印结果:

这等同于:

按ASCII的顺序进行排序,也没什么说的哦。

注意,如果对数字按ASCII顺序进行sort的话,结果可能与你想的不同:

2.2 以字典顺序sort

打印结果是:  

use locale是可选的--它让code兼容性更好,假如原始数据包含国际字符的话。use locale影响了cmp,lt,le,ge,gt和其他一些函数的操作属性--更多细节见perllocale的man page。

注意atlarge和at_large的顺序在输出时颠倒了,尽管它们的sort顺序是一样的(sort中间的子函数删掉了at_large中间的下划线)。这点会发生,是因为该示例运行在perl 5.005_02上。在perl版本5.6前,sort函数不会保护有一样values的keys的先后顺序。perl版本5.6和更高的版本,会保护这个顺序。

注意哦,不管是map,grep还是sort,都要保护这个临时变量$_(sort里是$a和$b)的值,不要去修改它
在该code里,在对$a或$b进行替换操作s/[/W_]+//g前,先将它们重新赋值给$da和$db,这样替换操作就不会修改原始元素哦。

3. 以降序sort

降序sort比较简单,把cmp或<=>前后的操作数调换下位置就可以了。

4. 使用多个keys进行sort

要以多个keys来sort,将所有以or连接起来的比较操作,放在一个子函数里即可。将主要的比较操作放在前面,次要的放在后面。

打印结果是:

上述code看起来很复杂,实际上很容易理解哦。@employees数组的元素是匿名hash。匿名hash实际上是个引用,可使用->操作符来访问其值,例如$employees[0]->{SALARY}可访问到第一个匿名hash里SALARY对应

您可能想查找下面的文章:

  • Perl Sort函数用法总结和使用实例
  • perl中的$a和$b介绍

相关文章

  • Perl中处理时间的几个函数
  • perl模块Data::Dumper应用一例分享
  • Perl 函数集小结
  • perl 模块打包加入外部依赖程序
  • Perl Sort函数用法总结和使用实例
  • perl调用外部命令(g)awk的方法
  • Perl的Mail::POP3Client模块和Gmail通信实例
  • perl跳过首行读取文件的实现代码
  • perl push的用法及子程序返回值的反思
  • Perl数组排序学习笔记

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 使用perl清理电脑上重复文件实现代码(续)
    • perl特殊符号及默认的内部变量
    • perl文件包含(do,require,use)指令介绍
    • Perl 函数集小结
    • 用python下载百度文库的代码
    • Perl中use和require用法对比分析
    • perl push的用法及子程序返回值的反思
    • perl控制流介绍(if条件,while,for循环,foreach)
    • Perl访问MSSQL并迁移到MySQL数据库脚本实例
    • perl qw以空格为分隔符问题的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有