我看到当我循环遍历数组的元素并测试 $#_ 时,每个元素都得到 -1。我希望有人能解释这个变量的作用,以及它最常用于什么。
问问题
133 次
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 回答