Ответ 1
Почти. В суффиксе foreach вы должны использовать $_:
$hash{$_}++ foreach @things;
Или эквивалентно (поскольку for
и foreach
псевдонимы для синтаксиса):
$hash{$_}++ for @things;
Можно ли использовать одиночную строку foreach
в Perl?
$hash{$thing}++ foreach my $thing (@things);
Я знаю, что это возможно со многими другими командами, такими как
die "Invalid file!\n" if (open($Handle, "file.txt"));
Я знаю, что открытый оператор может быть сломан:)
Почти. В суффиксе foreach вы должны использовать $_:
$hash{$_}++ foreach @things;
Или эквивалентно (поскольку for
и foreach
псевдонимы для синтаксиса):
$hash{$_}++ for @things;
Вы можете сделать:
foreach my $thing (@things) {$hash{$thing}++};
если вы хотите его на одной строке с переменной с лексической областью. Вы не можете инвертировать foreach
и сохранить переменную с областью действия цикла.