加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl Learning 2 List&Array

发布时间:2020-12-15 23:43:11 所属栏目:大数据 来源:网络整理
导读:【本文原创,转载请说明】 List 是标量的有序集合(数据), array 是存储列表的变量。列表的值不一定要放在数组里,但是每个数组变量都一定包含一个列表。 数组或者列表的头一个元素是第 0 个。任何求值能得到数字的表达式都可以用作下标 ? ?结果: 最后一

【本文原创,转载请说明】

List是标量的有序集合(数据),array是存储列表的变量。列表的值不一定要放在数组里,但是每个数组变量都一定包含一个列表。

数组或者列表的头一个元素是第0个。任何求值能得到数字的表达式都可以用作下标

? ?结果:

最后一个元素的索引值为$#XX,也存在从数组尾端往回计数的“负数数组索引值”。-1”最后一个元素,-2:倒数第二个元素,以此类推。

..范围操作符(range?operator)该操作符会从左边的数字计数到右边,每次加1

(5..1)?#空列表

建立简单的单词列表:qw(quoted?word)?or(quoted?by?whitespace)不能将注释放在qw列表中。

定界符可以不同,?qw(?),qw<?>,qw?/?/,?qw#?#;?如果你要在被圈引的字符串内使用定界符,可以通过反斜线转义来引入这个字符。

列表值也可以被赋值:


在数组前加上@,可以引用整个数组。

?

Pop操作符负责取出数组中最后一个元素并将其作为返回值返回


Push:添加一个或者一串元素到数组的尾端。注意:push的第一个参数或者pop的唯一参数都必须是要操作的数组变量——对列表直接量进行压入(push)或者弹出(pop)操作是没有意义的。

Pushpop是处理数组的尾端,相似地,unshift?和?shift是对数组的开头。


Splice?第一个参数为目标数组,第二个为操作的一组元素的开始位置。如果只给出这两个参数,那么perl会把从给定位置开始一直到末尾的全部元素取出来并返回。


第三个参数指定要操作的元素长度。


第四个参数是要替换的列表:


注意数组内插:

??


Foreach能逐项遍历列表中的值,依次迭代:


Perl会自动存储foreach循环的控制变量并在循环结束之后还原。在循环执行期间,我们无法访问或改变已存储的值,所以当循环结束时,变量仍然保持循环前的值;如果它之前从未被赋值,那就仍然是undef

?

Perl最喜欢用的默认变量:$_


Reverse操作符会读取列表的值,并按照相反的次序返回该列表。但他不会修改传进来的参数,假如返回值无处可去,那种操作也就变得毫无意义:


Sort操作符会读取列表的值(也可能来自组数),而且会根据内部的字符编码顺序对它们进行排序。和reverse一样不会修改参数。

以数组的“名称”为例:在列表的上下文中,它会返回元素的列表;在标量上下文中,则返回数组中的元素个数:


在perl想要列表上下文的地方我们要强制引入标量上下文,可以使用伪函数scalar


本章习题:


第一题:


第二题:


第三题:



以上代码已测试成功,但是和答案给的相比,还是有不少的差距:

第一题:


第二题:


第三题:

觉得自己的代码不够精简,foreach语句的用法没有用到位,这和编程思想有关系,看来我是编程编少了,仍需大量努力啊。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读