Perl Learning 2 List&Array

来源:互联网 发布:电信网络机顶盒密码 编辑:程序博客网 时间:2024/06/05 03:04

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

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语句的用法没有用到位,这和编程思想有关系,看来我是编程编少了,仍需大量努力啊。



0 0
原创粉丝点击