我看到当我循环遍历数组的元素并测试 $#_ 时,每个元素都得到 -1。我希望有人能解释这个变量的作用,以及它最常用于什么。
2 回答
10
就像$#foo是数组的最后一个现有索引@foo,$#_是数组的最后一个现有索引@_。如果@_为空,$#_则为-1。
听起来你的意思是使用$_. $_由 foreach 起别名,map并grep循环到正在处理的元素当前。while (<>)也设置$_(因为它被重写为while (defined($_ = <>)))。结果,$_被许多内置函数(例如 )用作默认参数say。
# Print each element on its own line
say for @a;
简称
# Print each element on its own line
say $_ for @a;
这是
# Print each element on its own line
for my $ele (@a) {
say $ele;
}
于 2013-08-12T14:16:56.877 回答
0
我相信你的意思是$_这是 Perl 中的一个特殊变量。它在遍历列表元素时保存当前值。例如,下面将打印出@foo 的每个元素,一次一个。
foreach (@foo) {
print $_;
}
于 2013-08-12T14:16:47.990 回答