Perl学习之列表和数组(0 位领导批示)
- 2008-05-27
- 分类:Perl
- 作者:银子
- 3,196 位领导视察
如果把标量认为是Perl中的单数的话,那列表(list)和数组则可认为是Perl中的复数。
列表是标量的有序集。数组是包含列表的变量。在Perl 中这个两个术语是可以互换的。但严格意义上讲,列表是指数据,而数组是其变量名。可以有一些值(列表)但不属于数组;但每一个数组标量都有一个列表,虽然其可以为空。
列表中每一个元素都是一个独立的标量值。这些值是有顺序的,也就是说,这些值从开头到最后一个元素有一个固定的序列。数组或者列表中的元素是编了号的,其索引从整数0开始,依次增一,因此数组或者列表第一个元素的索引为0。
由于每一个元素是一个独立的标量值,因此一个列表或者数组可以包含数字,字符串,undef 值,或者任意不同类型的标量值的组合。然而,这些元素的类型通常是一致的。
列表和数组可以包含任意数量的元素。最少含有0元素,最多可以填满你的可用内存。这里又体现了Perl 的设计哲学,“没有不必要的限制”。
1.访问数组元素
于Perl 可以通过索引值来访问元素,如:$array[0] = “test”;print $array[0];
数组名字和标量是属于完全不同的命名空间(namespace)。同一程序也可以同时包含叫做$array的标量变量。Perl将它们当作完全不同的事物来看待,不会混淆。(不建议这么做,容易弄混)
2.特殊的数组索引
如果将一个元素存储在数组最后元素的后面的位置,数组会自动增长的。Perl 没有长度的限制,只要你有足够的内存。如果Perl需要创建元素,则其值为undef。
有时需要知道数组最后一个元素的索引。如 array 数组,其最后一个元素的索引为$#array
一种简便方法:数组的负数索引值从最后一个元素开始。但不要认为这些索引是循环的。如果数组有3 元素,那有效的负数索引值是-1(最后一个元素),-2(中间的元素),-3(第一个元素)。实际上,几乎没有人使用除了-1之外的其它的负数索引值。















