有人可以向我解释为什么只打印这个数组的第一项吗?
print "Hello World!\n";
@array1 = ("john","haider","elley","uul");
@array2 = qw/This is an array/;
$array_size=scalar @array1;
print "Size: ",$array_size,"\n";
$i;
for($i=0; $i<=$array_size; $i=$i+1)
{
print"Array elements are=",$array1[i],"\n";
}
答案 0 :(得分:5)
因为你在这里打字错误:$array1[i]
。
那应该是$i
,就像在$array1[$i]
中一样 - 这是use strict;
use warnings
会警告你的事情。 Bareword "i" not allowed while "strict subs" in use
但是因为它存在 - 因为你在那里使用i
,并且它不是变量 - 它被评估为零,所以你只需要打印数组的第一个元素。
更好的习语是:
foreach my $value ( @array1 ) {
print "Array elements are=", $value,"\n";
}
很少有必要(或希望)通过perl中的索引来操作数组。