perl 数组的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/19 16:37:53
在看perl的教程。有如下一段:
=================================
2.特殊的数组索引
如果将一个元素存储在数组最后元素的后面的位置,数组会自动增长的。Perl 没有长度的限制,只要你有足够的内存。如果Perl需要创建元素,则其值为undef。

有时需要知道数组最后一个元素的索引。如 array 数组,其最后一个元素的索引为$#array

一种简便方法:数组的负数索引值从最后一个元素开始。但不要认为这些索引是循环的。如果数组有3 元素,那有效的负数索引值是-1(最后一个元素),-2(中间的元素),-3(第一个元素)。实际上,几乎没有人使用除了-1之外的其它的负数索引值。

=====================================
其数组的负数索引值
最后一个元素的索引为$#array 这2句是什么意思?

数组的下标从0开始,$#array是一个特殊的变量,它的值就是数组array的最后的元素的下标,假设array有3个值,最后的下标就是2(依次是0、1、2),假设你的数组名字为@HHH,最后的索引就是$#HHH.

负值索引就是从后面依次取数组的索引,依次是(-1,-2,-3,-4,...),就是为了让你方便从数组里面取出值来用的。这样用数组实现一个栈就很容易了。例子你看楼上的就明白了。

如数组为@a=(1,2,3,4,5);
$a[0]=1;
$a[1]=2;
$a[-1]=5;
$a[4]=5;
$a[$#array]=5;
$#array=4;

如果一个数组有5个元素,那$#array应该是4了.
负数索引就是倒序,正常是从0开始,而倒序从-1开始;
@a=(1,2,3,4,5);
那么 $#a==4;
$a[$#a]==$a[-1]==$a[4]==5;

$#array表示数组中最后一个索引,或者称为下标。