是否可以在Perl中使用单行foreach
循环?
$hash{$thing}++ foreach my $thing (@things);
我知道这可以通过许多其他命令来实现,例如,
die "Invalid file!\n" if (open($Handle, "file.txt"));
我知道公开声明可能会被破坏:)
答案 0 :(得分:30)
几乎。在foreach后缀中,您必须使用$ _:
$hash{$_}++ foreach @things;
或等效(因为for
和foreach
是语法别名):
$hash{$_}++ for @things;
答案 1 :(得分:3)
你可以这样做:
foreach my $thing (@things) {$hash{$thing}++};
如果你想在一行中使用词法范围的变量。您无法反转foreach
并保留循环范围的变量。