Perl的postfix`for`语法在哪里记录?

时间:2011-06-08 15:33:56

标签: perl syntax

我最近遇到了以下代码段

$count_stuff{$_}++ for @stuff;

这是一种非常方便的方法,可以使用哈希来计算数组中字符串的出现次数。我理解 它是如何工作的,但不是为什么它的工作原理。我无法找到使用 for 的方式的文档。

为什么会这样?文档在哪里?

4 个答案:

答案 0 :(得分:19)

它记录在“perlsyn”手册页的Statement Modifiers(其中讨论了后缀语法)和Foreach Loops下(其解释为“for”和“foreach”是同义词)。

答案 1 :(得分:3)

Perl的许多语句都有后缀变体。只是你在一个语句体后写了关键字。

您可以以相同的方式使用ifunless等。

答案 2 :(得分:1)

根据this page,记录here 您应该阅读Foreach Loops以获得问题的答案。

简而言之,如果你了解这一点:

for my $item ( @array ) { print $item }

了解forprint的语法:

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 }

的替代语法