第三章 列表和数组
标量代表单数,那么列表和数组就代表复数。
列表是标量的有序集合(指的是数据),数组是存储列表的变量(指的是变量)。
每个元素都有相应的索引号,从0开始。
1、访问数组中的元素
使用下标数字来引用数组元素;
2、特殊索引
数组的长度没有上限;
如果要找出数组的最后一个元素,那么会使用-1这样的负数索引值。
3、列表直接量
可由圆括号内用逗号隔开的一串数据表示;
..表示范围操作符,比如(1..99)指的就是从1到99的数值;
4、qw简写
perl将qw中的内容当做单引号中的字符串来对待;
perl允许你你用任何标点符号作为定界符;
5、列表的赋值
在引用真个数组时,只要在数组之前加个@字符,
6、pop和push操作符
我们常把数组当做堆栈来用,比如在数组右方增添新值或删掉旧值;
pop负责去除数组中最后一个元素并将其作为返回值返回。
push负责在数组的尾端增添一个元素或者一组元素;
7、shift和unshift操作符
与pop和push对应,shift和unshift是对数组的开头进行相应的处理;
8、splice操作符
增添或者删除中间的元素;
有四个参数,后两个参数是可选参数;
第一个参数是要操作的目标数组,第二个参数是要操作数组的开头位置,第三个参数是指定的要操作的参数长度(表示要操作的元素个数),第四个是要替换的列表。
9、字符串的数组内插
数组的内容可以像标量一样被内插到双引号串中,但是首尾不会添加空格,需要手动添加。
索引表达式会被当做普通的字符串表达式来处理,改表达式的变量不会被内插。
10、foreach控制结构
forech能逐项遍历列表中的值,依次迭代(循环过程)
11、perl最喜欢用的默认变量$_
最常用的默认变量
12、reverse操作符
读取列表或数组的值,并按照相反的次序返回该列表。
13、sort操作符
根据内部的字符编码顺序将列表或者数组的值排序
14、each操作符
每次对数组调用each,会返回数组中下一个元素所对应的两个e值--该元素的索引和该元素的值。
15、标量上下文和列表上下文
所谓上下文,意思就是如何使用表达式;
当perl在解析上下文时,要么希望他们返回一个标量,要么希望返回列表,表达式所在的位置,perl期望得到什么,那就是该表达式的上下文。(重在理解+应用)
16、在标量上下文中使用产生列表的表达式
sort在标量中的上下文返回值是undef;
reverse在标量中的返回值是逆序后的字符串,在列表中返回逆序后的列表。
17、在列表上下文中使用产生标量的表达式
表达式求值结果为列标值时,自动产生一个仅含此标量值的列表。
18、强烈指定标量上下文
伪函数scalcar,表示要切换到标量上下文