目前我这样做是为了读取数组的各个内容
my $size = @words;
for(my $x = 0; $x < $size, $x++)
{
print $words[$x];
}
是否可以跳过 $size 赋值?一种转换数组并减少一行的方法?
即
for(my $x = 0; $x < $(@word), $x++)
{
print $words[$x];
}
似乎找不到正确的语法。
谢谢
最佳答案
替换
for (my $i = 0; $i < $(@words), $i++) { ... $words[$i] ... }
与
for (my $i = 0; $i < @words; $i++) { ... $words[$i] ... }
就像在您的作业中一样,在标量上下文中评估的数组会产生其大小。
也就是说,使用 C 风格的循环既复杂又浪费资源。
如果您需要索引,更好的解决方案:
for my $i (0..$#words) { ... $words[$i] ... }
如果不需要索引,更好的解决方案:
for my $word (@words) { ... $word ... }
关于perl - 我可以使用数组的大小而不必将它放在变量中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54334849/