基本概念
列表和数组的关系,就如同标量与标量变量的关系。列表指的是数据,而数组指的是数据的变量名。换言之,每个数组变量都有一个列表,而列表可以为空。
在列表中,每个元素都是单独的标量变量。如果假设标量是“单数”的话,那么列表就是“复数”,只不过列表中的元素可能不是同一个类型。也就是说列表元素之间是互不相关的,每个元素都可以是数字、字符串或者undef类型,这一点与某些别的编程语言不同。在列表中,元素的值是有序的,元素的索引从“0”开始,每次增加1。与字符串相似,数组/列表也具有“无限制性”,言外之意就是,一个数组或者列表可以无限大,包含无限多的元素直到占满存储空间。
列表直接量
列表的直接量是在圆括号内用逗号隔开的一串数据,例如:
(1,2,3)#含有1,2,3的一个列表
(1,2,3,)#同样是含有1,2,3的一个列表,最后一个逗号会被忽略
()#空列表,列表中包含0个元素
(1..100)#包含1-100共计100个整数的列表
上面例子中“..”是范围操作符,代表的含义是从左到右计数,每次增加1。值得注意的是,它只能对整数进行操作,如果范围操作符两边不是整数,则它会先将两个数字转换为整数(退一法),然后在执行范围操作。例如:
(1..5)#一个列表,包含1,2,3,4,5共计5个元素
(1.7..5.7)#该列表与上面的列表相同,也是个包含1,2,3,4,5共计5个元素的列表
qw简写
在Perl程序中,常常会用到字符串组成的列表,通俗讲就是单词列表。在输入单词列表直接量时,可以采用qw简写,该方法可以避免很多麻烦。例如
qw (fred barney betty Wilma dino)
#一个列表,包含“fred”、“barney”、“betty”、“Wilma”和“dino”五个字符串
qw可以理解为quoted word或者quoted by whitespace,说白了就是省略了引号,