设为首页 收藏本站
查看: 1294|回复: 0

[经验分享] Perl 学习记录3 基本构件的堆栈:列表与数组

[复制链接]

尚未签到

发表于 2017-5-19 12:47:22 | 显示全部楼层 |阅读模式
  1.列表是列表数据最简单的表示方法,它们只是一个标量的组合。由于列表是标量的集合,并且标量也可以任意大,因此列表能够存放相当多的数据。
若要将一个列表存放在一个变量中,需要一个数组变量。在Perl中,数组变量用一个符号(@)后随一个有效的变量名
数组变量可以与标量变量使用相同的名字,例如,$names与@names可以指不同的东西,$names指一个标量变量,而@names则指一个数组。
  2.如果列表只包含简单的字符串,而用单引号将每个字符串括起来对你来说又太麻烦,那么Perl提供了一个快捷方式,即qw运算符。下面是使用qw的一个例子:
qw (apples oranges 45.6$x)
  3.Perl有一个非常有用的能够对列表进行操作的运算符,称为范围运算符。范围运算符由一对圆点(..)来表示。下面是该运算符的用法的例子:
( 1..10 )
如果范围运算符的右边的操作数小于左边的操作数,比如(10..1) ,那么将产生一个空列表。范围运算符既可以用于字符串,也可以用于数字。
  4.@copy =@origina ;
@clean = () ;
在这里,@origina数组的所有元素都被拷贝到新数组@copy中。如果@copy中原先已经拥有元素,那么这些元素就会丢失。这时 @ c l e a n就变成空数组。
  5.若要获得整个数组的内容,最简单的方法是使用双引号中的数组:
print "@array";
若要访问一个元素,可以使用句法 $array[index],其中array是数组的名字,index是你想要的元素的索引。
  6.Perl能够说明$trees与@trees[0]之间的差别,因为$trees[0]中有一个方括号。 Perl知道你指的是@trees的第一个元素,而根本不是指$trees。
  7.Perl提供了两个机制,可以用来查找数组的结尾。第一个方法是个特殊变量,其形式是$#arrayname。它能够返回数组的最后一个有效索引的号码。
寻找数组大小的另一种方法是在期望存在标量的位置上使用数组变量:
  8.也可以为数组设定负索引。负索引号从数组的结尾开始计数,然后反向递增。例如,$array[-1]是@array的最后一个元素,$array[-2]是倒数第二个元素,依次类推。
  9.可以使用一个称为scalar的特殊伪函数来强制将某个东西放入标量上下文:
print sacalar (@foo);
这个例子用于输出@foo中的元素的数量。scalar函数强制@foo在一个标量上下文中进行计算,因此@foo返回@foo中的元素的数量。
  10.如果chomp函数获得一个标量,那么它就从标量的结尾处删除记录分隔符。如果它获得一个数组,它将从数组中的每个标量的结尾处删除记录分隔符。
  11.什么是文件结尾呢?当Perl读取来自终端的全部输入且你完成 Perl数据的输入时,你必须发出通知。为此通常键入一个 End of File(文件结束)字符(EOF) 。该字符随着你使用的操作系统的不同而各有差别。在 U N I X下,该字符通常是在一行的开头使用Ctrl + D。在MS _ DOS或者Windows系统上,该字符是在输入的任何位置两次使用Ctrl + Z。
  12.localtime函数返回一个格式化很好的当前时间字符串。例如, print scalar(localtime)这个代码,它输出的结果将类似于 Thu Sep 16 23:00:06 1999。在列表上下文
中,localtime将返回能够描述当前时间的一个元素列表
  13.将标量转换成数组的方法之一是使用 split函数。Split函数拥有一个模式和一个标量,并且使用该模式来分割该标量。第一个参数是该模式(这里用斜杠括起来) ,第二个参数是要分割的标量
@words = (/ /,"The quick brown fox")
  14.join函数取出一个字符串和一个列表,使用该字符串将列表的各个元素组合在一起,然后返回产生的字符串。
  15.Perl提供了sort函数。Sort函数将一个列表作为它的参数,并且大体上按照字母顺序对列表进行排序,然后该函数返回一个排定顺序的新列表。原始数组保持不变
  16.reverse函数能够对字符串的字符进行倒序操作,返回倒序后的字符串

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379119-1-1.html 上篇帖子: 非税代收系统主机创建对账文件的perl脚本 下篇帖子: PROGRAMMING THE WORLD WIDE WEB Chapter 4 The Basics of Perl
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表