Подтвердить что ты не робот

Можно ли написать цикл Perl foreach в одной строке?

Можно ли использовать одиночную строку foreach в Perl?

$hash{$thing}++ foreach my $thing (@things);

Я знаю, что это возможно со многими другими командами, такими как

die "Invalid file!\n" if (open($Handle, "file.txt"));

Я знаю, что открытый оператор может быть сломан:)

4b9b3361

Ответ 1

Почти. В суффиксе foreach вы должны использовать $_:

$hash{$_}++ foreach @things;

Или эквивалентно (поскольку for и foreach псевдонимы для синтаксиса):

$hash{$_}++ for @things;

Ответ 2

Вы можете сделать:

foreach my $thing (@things) {$hash{$thing}++};

если вы хотите его на одной строке с переменной с лексической областью. Вы не можете инвертировать foreach и сохранить переменную с областью действия цикла.