-3

我看到当我循环遍历数组的元素并测试 $#_ 时,每个元素都得到 -1。我希望有人能解释这个变量的作用,以及它最常用于什么。

4

2 回答 2

10

就像$#foo是数组的最后一个现有索引@foo$#_是数组的最后一个现有索引@_。如果@_为空,$#_则为-1

听起来你的意思是使用$_. $_由 foreach 起别名,mapgrep循环到正在处理的元素当前。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 回答