Ответ 1
Он задокументирован на странице man perlsyn в модификаторах сообщений (что говорит о синтаксисе postfix) и в Foreach Loops (что объясняет, что "for" и "foreach" являются синонимами).
Недавно я натолкнулся на следующий фрагмент кода
$count_stuff{$_}++ for @stuff;
Это довольно удобный способ использовать хэш для подсчета вхождения строк в массив, например. Я понимаю, как это работает, но не почему это работает. Я не могу найти документацию для этого способа использования для.
Почему это работает? А где документация?
Он задокументирован на странице man perlsyn в модификаторах сообщений (что говорит о синтаксисе postfix) и в Foreach Loops (что объясняет, что "for" и "foreach" являются синонимами).
Perl имеет постфиксные варианты для многих своих операторов. Просто вы пишете ключевое слово после тела одного оператора.
Вы можете использовать if
, unless
и т.д. таким же образом.
Мне кажется, как стандартный Perl for
. Принимает каждый элемент и выполняет тело (в данном случае это до) с заменой $_
на каждый элемент. Это просто альтернативный синтаксис для: for (@array) { statements }
В соответствии с эта страница документирована здесь < ш > И вы должны прочитать "Циклы цикла" , чтобы получить ответ на ваш вопрос.
Короче говоря, если вы это хорошо понимаете:
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.
И согласно документу print: If LIST is omitted, prints $_
Итак, мы можем уменьшить приведенный выше пример:
for ( @array ) { print }
В постфиксной форме он будет выглядеть так:
print for @array;