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

[经验分享] Learning Perl(Perl语言入门)学习笔记(2)

[复制链接]

尚未签到

发表于 2018-9-1 09:36:14 | 显示全部楼层 |阅读模式
1、 列表和数组在Perl中用来表示复数;  2、 列表(list)指的是标量的有序集合,数组(array)表示存储列表的变量;列表是数据,数组是变量,列表可以不放在数组中;
  3、 数组或列表的每个元素都是单独的标量变量,拥有独立的变量值,可以同时包含数字、字符串或undef,但使用时一般让其具有相同的类型;
  4、 索引计数从0开始,如果索引值是表达式,而结果不为整时会先取整,如果越界或未定义则值为undef;索引表达式不会进行变量替换,因此不能使用变量;对索引值超过数组尾端的元素进行赋值时,数组将会依需要自动扩大,如果中间有空出来的未赋值元素,则Perl自动为其赋值为undef;“$#数组名”可以取得最后一个数组元素的索引值,也可以负数对索引从后向前计数,最后个索引的值为-1;
  5、 数组和标量属于不同的命名空间,因此可以同时使用同名的数组名和标量名,但不建议这么做;
  6、 列表直接量是圆括号内的一串以逗号分隔的值,可以使用范围操作符表达式,如(1..20),也可以使用表达式以在每次用到时进行计算;使用qw可以表示“加上(单)引号的单词”,它会“把空白当引号”,不会对“\n”等进行转义,不能在其间进行注释,但可以在中间换行;
  7、 赋值时,如果变量多于值,则会对尾部的变量赋予undef,如果值的个数多于变量,则多余的值会被丢弃;数组不能包含数组,除非使用“引用”;赋值前,数组变量的值是空列表;
  8、 “@数组名”可以引用整个数组,读作“全部的…”,且此符号在赋值操作符两端均可使用;
  9、 pop用来取出数组中最后一个元素并将它返回,格式为“pop(@数组名)”,括号可有可无,但参数必须是数组变量,不能是列表;push用来在数组末尾追加一个元素,格式为“push(@数组名,元素值)”,同样,push只能对数组进行操作;shift(取出)和unshift(添加)是用来在数组首部进行操作的函数;对于空数组,pop和shift的返回值均为undef;
  10、 数组可以进行在双引号内进行数组替换,如果数组名后跟“[”这样的字符,必须将先将它们隔离,否则“[”会被当作数组索引的一部分;隔离方法可以使用如:${数组名}[1] 、“${数组名}”.“[1]”或“${数组名}\[1]”的形式;
  11、 foreach循环的结构为“foreach 控制变量 (列表){ 循环体;}”,控制变量会遍历列表元素,且控制变量就列表元素而非其副本,因此,如果在循环中修改控制变量,那么修改的就是列表元素本身;而控制变量在使用结束后会被还原为原始值;控制变量可以省略,此时将使用$_;
  12、 reverse函数会读取其后列表的元素(可以来自于数组)并以相反的顺序返回,但并不影响被读取数组的元素值;如果要将反向顺序的元素值存入自身,可以使用如@array = reverse @array的形式进行;
  13、 sort函数会读取数组元素并将其按ASCII编码的顺序进行排序(不会按数字大小排序),排序结果不会影响数组本身,这类似于前面的reverse;
  14、 所谓“上下文(context)”指的是表达式出现的位置。解析表达式时,Perl会希望它是“标量值”或“列表值”之一;
  15、 数组在列表上下文会产生列表,在标量上下文会返回列表元素的个数;但在标量上下文中,sort返回undef(排序后取元素个数没有什么意义),reverse返回元素值反序的字符串;
  16、 在列表上下文中使用产生标量的表达式时,如果表达式的求值结果是标量值,则其会被自动提升为仅含有单一元素的列表;scalar函数可以在列表上下文中强制指定使用标量上下文;
  17、 在标量上下文中会返回输入数据的下一行,在列表上下文中会返回剩余的各行,每一行都将会成为列表中单独的元素;列表上下文中,如果输入源是键盘,需要使用“Ctrl+D”结束,在Windows中一般使用“Ctrl+Z”结束,


运维网声明 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-560998-1-1.html 上篇帖子: Learning Perl(Perl语言入门)学习笔记(1) 下篇帖子: perl 用户查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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