有多种打印数组大小的方法。这是全部的含义:假设我们的数组是my @arr = (3,4);
方法1:标量
这是获取数组大小的正确方法。
print scalar @arr; # prints size, here 2
方法2:索引号
$#arr
给出数组的最后一个索引。因此,如果数组的大小为10,则其最后一个索引为9。
print $#arr; # prints 1, as last index is 1
print $#arr + 1; # Add 1 to last index to get array size
我们在这里添加1,将array视为0-indexed。但是,如果它不是基于零的,那么此逻辑将失败。
perl -le 'local $[ = 4; my @arr=(3,4); print $#arr + 1;' # prints 6
在上面的示例中显示6,因为我们将其初始索引设置为4。现在索引将是5和6,分别是元素3和4。
方法3:
在标量上下文中使用数组时,它将返回数组的大小
my $size = @arr;
print $size; # prints size, here 2
实际上方法3和方法1是相同的。
print 0+@arr
,print "".@arr
,print ~~@arr