Perl Learning 2 List&Array
【本文原创,转载请说明】 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)操作是没有意义的。 Push和pop是处理数组的尾端,相似地,unshift?和?shift是对数组的开头。
Splice?第一个参数为目标数组,第二个为操作的一组元素的开始位置。如果只给出这两个参数,那么perl会把从给定位置开始一直到末尾的全部元素取出来并返回。
第三个参数指定要操作的元素长度。
第四个参数是要替换的列表:
注意数组内插:
Foreach能逐项遍历列表中的值,依次迭代:
Perl会自动存储foreach循环的控制变量并在循环结束之后还原。在循环执行期间,我们无法访问或改变已存储的值,所以当循环结束时,变量仍然保持循环前的值;如果它之前从未被赋值,那就仍然是undef。 ? Perl最喜欢用的默认变量:$_
Reverse操作符会读取列表的值,并按照相反的次序返回该列表。但他不会修改传进来的参数,假如返回值无处可去,那种操作也就变得毫无意义:
Sort操作符会读取列表的值(也可能来自组数),而且会根据内部的字符编码顺序对它们进行排序。和reverse一样不会修改参数。 以数组的“名称”为例:在列表的上下文中,它会返回元素的列表;在标量上下文中,则返回数组中的元素个数:
在perl想要列表上下文的地方我们要强制引入标量上下文,可以使用伪函数scalar。 本章习题: 第一题: 第二题: 第三题: 以上代码已测试成功,但是和答案给的相比,还是有不少的差距: 第一题: 第二题: 第三题: 觉得自己的代码不够精简,foreach语句的用法没有用到位,这和编程思想有关系,看来我是编程编少了,仍需大量努力啊。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |