我最近遇到了以下代码段
$count_stuff{$_}++ for @stuff;
这是一种非常方便的方法,可以使用哈希来计算数组中字符串的出现次数。我理解 它是如何工作的,但不是为什么它的工作原理。我无法找到使用 for 的方式的文档。
为什么会这样?文档在哪里?
答案 0 :(得分:19)
它记录在“perlsyn”手册页的Statement Modifiers(其中讨论了后缀语法)和Foreach Loops下(其解释为“for”和“foreach”是同义词)。
答案 1 :(得分:3)
Perl的许多语句都有后缀变体。只是你在一个语句体后写了关键字。
您可以以相同的方式使用if
,unless
等。
答案 2 :(得分:1)
根据this page,记录here 您应该阅读Foreach Loops以获得问题的答案。
简而言之,如果你了解这一点:
for my $item ( @array ) { print $item }
了解for
和print
的语法:
LABEL for VAR (LIST) BLOCK
print LIST
根据foreach的文件:If VAR is omitted, $_ is set to each value.
根据{{3}}的文档:If LIST is omitted, prints $_
所以我们可以减少上面的例子:
for ( @array ) { print }
在后缀形式中,它将如下所示:
print for @array;
答案 3 :(得分:0)
在我看来,就像标准的Perl for
一样。获取每个元素并执行正文(在本例中为之前),并用每个元素替换$_
。它只是:for (@array) { statements }