|
列表 (list) 是标量的有序集合,而数组(array)则是存储列表的变量。
列表指的是数据,数组指的是变量。列表的值不一定要放在数组里,但每个数组变量都一定包含一个列表,即使该列表可能为空。
数组或列表中的每个元素都是单独的标量变量,拥有独立的标量值,而且这些值是有序的,也就是说,从其实元素到终止元素的先后次序是固定的。数组或列表中的每个元素都有一个整数作为其索引,且索引号从 0 开始,依次递增 1 。
由于每个元素都是独立不相关的标量值,所以列表或数组里可能包含数字,字符串,undef 值或不同类型变量值的混合。但一般来说,保持所有元素具有相同的类型是一种常见的做法。
列表和数组中可以没有任何元素,也可以包含任意多个元素,多到可以将可用内存全部塞满。
列表直接量是圆括号中用逗号隔开的一系列值,这些值构成了列表中的元素。下面的程序演示了多种填写直接量到列表中的情况:
[code=perl]#!/usr/bin/perl
$m = 11;
$n = 17;
@myarr = (1, 2, 3);
@myarr2 = ("groad", 7, 9);
@myarr3 = (1..10);
@myarr4 = (1.9..5.8); #会自动变为整数
@myarr5 = (1, 2, 3, 4..8, 10);
@myarr6 = (10..3); #空列表,只能向上增长
@myarr7 = ($m..$n); #变量也可以
@myarr8 = (0..$#myarr); #注意这里的 $#myarr 的值是2,它是数组的索引
@myarr9 = ($n-$m..$n-8);
foreach (@myarr) {
print "$_ ";
}
print "\n-----------------\n";
foreach (@myarr2) {
print "$_ ";
}
print "\n-----------------\n";
foreach (@myarr3) {
print "$_ ";
}
print "\n-----------------\n";
foreach (@myarr4) {
print "$_ ";
}
print "\n-----------------\n";
foreach (@myarr5) {
print "$_ ";
}
print "\n-----------------\n";
foreach (@myarr6) {
print "$_ ";
}
print "\n-----------------\n";
foreach (@myarr7) {
print "$_ ";
}
print "\n-----------------\n";
foreach (@myarr8) {
print "$_ ";
}
print "\n-----------------\n";
foreach (@myarr9) {
print "$_ ";
}
print "\n-----------------\n";[/mw_shl_code]
运行输出:./list.pl
1 2 3
-----------------
groad 7 9
-----------------
1 2 3 4 5 6 7 8 9 10
-----------------
1 2 3 4 5
-----------------
1 2 3 4 5 6 7 8 10
-----------------
-----------------
11 12 13 14 15 16 17
-----------------
0 1 2
-----------------
6 7 8 9
----------------- 程序中,数组名前加一个 '@' 符号表示对整个数组的引用。 |
|