位置: 编程技术 - 正文

Perl数组排序学习笔记(perl 数组放入另一个数组)

编辑:rootadmin

推荐整理分享Perl数组排序学习笔记(perl 数组放入另一个数组),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:perl 数组,perl数组初始化,perl数组最大值,perl数组push,perl数组push,perl数组push,perl数组元素个数,perl数组元素个数,内容如对您有帮助,希望把文章链接给更多的朋友!

本文我们学习如何用Perl对字符串或者数字数组进行排序。

Perl有个内置函数叫做sort毫无疑问的可以排序一个数组。 其最简单的形式是传递一个数组,它会返回排序后的元素组成的数组。@sorted = sort @original。

基于ASCII码排序上边的例子将会打印第一个输出显示了排序前的数组,第二个是排序后的。

这是最简单的情形,但是可能未必是你想要的。 比如,如果一些单词以大写字母开头怎么办?你会发现,以大写字母开头的单词排在了第一位。 这是因为sort默认根据ASCII码表排序,所有的大写字母都排在小写字母前边。

比较函数

Perl的sort的工作方式是这样的,它遍历原始数组的每两个元素;每次把左边的值放入变量$a,把右边的值放入变量$b。 然后调用比较函数。如果$a的内容应该在左边的话,“比较函数”会返回1;如果$b应该在左边的话,返回-1,两者一样的话,返回0。

Perl数组排序学习笔记(perl 数组放入另一个数组)

通常你看不到比较函数,sort会根据ASCII码表对值进行比较,不过如果你想的话,你可以显式的写出来:这段代码会跟没有使用块的sort @words达到同样的效果。

这里你可以看到,默认perl使用cmp作为比较函数。这是因为正是cmp可以做这里边我们需要的工作。 它比较两边的字符串的值,如果左边参数“小于”右边参数,就返回1;如果左边参数“大于”右边参数,就返回-1;如果相等,就返回0。

按字母顺序排列如果你想忽略字符串的大小写来排序——即通常所谓的字母序,你可以像下一个例子这么做:这里为了比较,我们调用lc函数返回参数的小写版本。然后cmp比较这些小写版本并决定原始字符串谁先谁后。

结果是

Perl对数值排序如果对数值数组使用sort进行默认的排序,结果可能不是我们期望的。仔细一想的话,这并不奇怪。比较函数看到和3时,它按字符串进行比较。这意味着比较两个字符串的第一个字符"1"和"3"。 在ASCII码表里,"1"在"3"前边,因此字符串""会排在字符串"3"前面。

Perl不会很神奇地猜到你想按数字对这些值排序。

尽管我们可以写一个比较函数来按数字比较两个值。但这里我们使用<=>(也被称作宇宙飞船操作符), 它会按数字来比较两个参数并返回1、-1或者0。

结果是:

Perl脚本实现递归遍历目录下的文件 #!/usr/bin/perl-wusestrict;useFile::Spec;local$="n";#当前模块的每行输出加入换行符my%options;#目录路径$options{single_case}='/home/jiangyu/src/pl/Example';my@cases;if(-d$options{sin

Perl读写文件简单示例 !/usr/bin/perl-wusestrict;#print"pleaseinputastringn";#my$line=STDIN;#print$line;#wirteafileopen(FH,"aa.txt")ordie$!;printFH"hellon";#向文件写入内容printFH"OKn";close(FH);#openafileopen(FH,"

perl读写文件代码实例 #modeoperandcreatetruncate#read#writeyesyes#appendyesCase1:Throwanexceptionifyoucannotopenthefile:usestrict;usewarnings;my$filename='data.txt';open(my$fh,':encoding(UTF-8)',$filename)ordie"Couldnotope

标签: perl 数组放入另一个数组

本文链接地址:https://www.jiuchutong.com/biancheng/372381.html 转载请保留说明!

上一篇:讲Perl中的本地时间与UNIX时间戳间相互转换的方法(perl如何使用)

下一篇:Perl脚本实现递归遍历目录下的文件(perl脚本foreach)

  • 企业汇算清缴时允许税前扣除的工资是
  • 新公司三个月没有录入职员
  • 国税税务登记号查询
  • 进仓费税率
  • 接受投资专利技术科目
  • 公司的货款直接到账吗
  • 上期留抵税额会计分录
  • 非居民企业股权转让所得税
  • 物业电费加价如何举报
  • 资本溢价是
  • 当月忘记暂估怎么办
  • 退税税额要做进项税转出吗?
  • 增值税税率征收率变化时间节点
  • 何为销项税额
  • 银行承兑汇票贴现会计分录
  • 向境外支付违约金要代扣税吗
  • 要求做前两年的核酸检测
  • 享受小型微利企业税收优惠的条件
  • 企业所得税以前年度所得调整
  • 营改增后的劳务费怎么开
  • 退税应纳税所得额4万交税多少
  • 增值税应税劳务的纳税人是什么意思
  • linux默认文件类型
  • 待认证进项税额借方余额表示什么
  • 投资资本回报率多少合适
  • 资产置换会计准则
  • 应付职工薪酬计提数是借方还是贷方
  • macOS Catalina10.15.2值得升级吗 macOS Catalina10.15.2更新了什么
  • 资不抵债从资产负债表上怎么看出来
  • 证券公司佣金是买卖都要收吗
  • 房屋租赁进项税
  • 备份计算机需要多久
  • 最常用的成本核算方法表
  • 广告公司的设计服务费计入什么科目
  • 公司支付员工工伤医疗费怎么入账
  • 企业所得税优惠事项管理目录
  • 材料短缺计入
  • smarty模板数学运算示例
  • 织梦参数配置设置
  • 会计人员报销差旅费应该给谁审核呢
  • 支付施工单位进度款的请示
  • MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
  • 普通发票可抵税吗
  • 如何设置长期有效的二维码
  • SQL Server 2008+ Reporting Services (SSRS)使用USER登录问题
  • 应交税费应交增值税明细账图
  • 应收账款贷方如何核算
  • 利润分配科目是所有者权益科目吗
  • 公司销售一批物品怎么做
  • 银行汇票使用方法
  • 公司借款给个人的税务问题
  • 在建工程领用物资时是用成本价还是市场价
  • 每个月房租
  • 房地产结转收入的条件
  • 销售自行开发的房地产项目的增值税
  • 亏本处理产品怎么做账
  • 跨月销项负数发票分录
  • 高新技术企业的税收优惠政策
  • 企业印花税率
  • 满减送的购物券在哪里看
  • mysql kill -9
  • win7卸载程序找不到软件
  • mac如何设置默认打开程序
  • winserver是什么意思
  • xp查看用户名和密码
  • linux svn命令使用详解
  • win8系统修改密码
  • win7系统出现蓝屏重启怎么办
  • cocos2dx 教程
  • javascript date format
  • css一个页面跳转到另一页面
  • node+express+ejs制作简单页面上手指南
  • 安卓icon图标
  • unity3d需要什么语言
  • tbc背包插件
  • unity破解安装教程
  • python迭代类型
  • 广东省地方税务局公告2017年第7号
  • 北京市国家税务局网站官网
  • 税务干部工作纪实怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设