列表与数组
1. 列表和数组的定义
- 列表:指的是存储列表的有序集合;(真实的数据)
- 数组:存储列表的变量;(存储列表的容器)
- 对比与标量,列表对应于数据,数组对应于变量;
- 数组和列表的特性:
- 数组和列表的每个元素都是单独的标量变量,拥有独立的标量值,这些值是有序的(顺序固定);
- 数组和列表都有对应的整数作为索引,从0开始,依次递增;
- 数组和列表的每个元素都都是独立的,因此其类型可以不同(字符串,数字等)<一般相同>;
- 数组和列表可以包含任意多个元素;
- 使用@字符来声明一个数组;
2. 数组中的元素
- 数组元素调用方法:
#!/usr/bin/perl -w
$fred = 0;
$index = 2.345;
@fred = (yabba, dabba, doo);
print $fred; #打印0
print $fred[0]; #print yabba
print $fred[$number - 1] ; #print dabba (自动去除小数,无论正负)
print $fred[123]; #print undef
2.1 特殊的数组索引
假如你对索引值超过数组尾端的元素进行赋值,数组将会根据需要自动增大–只要能分配可用的内存,perl的数组可以无限大,见下例:
#special index
$rocks[0] = 'dedrock'; # 1 element
$rocks[1] = 'slate'; # 2 elements
$rocks[2] = 'lava'; # 3 elements
$rocks[3] = 'crushed'; # 4 elements
$rocks[99] = 'schist'; # 5 elements,and 95 undef elements
#last index of array
$end = $#rocks; # $end = 99, the last index of array
print $rocks[$#rocks]; # print "schist"
#minus index (基本没人使用除-1之外的负索引值)
print $rocks[-1]; # print "schist"
print $rocks[-100]; # print "dedrock"
print $rocks[-2000]; # ERROR!
2.2 列表和数组的赋值
- 列表直接量:直接写成数据形式的列表;
#normal list
(1,2,3) #包含元素1,2,3
(1,2,3,) #包含元素1,2,3,最后的逗号被忽略
("fred",4,5) #包含元素“fred”,4,5
() #不包含元素的空列表
(1