В Perl есть две формы оператора for
. Тот, который вы видите здесь, часто пишется как foreach
, но for
и foreach
являются синонимами. Обычно он перебирает список, устанавливая $_
для каждого элемента. В этом случае «список» представляет собой одно значение, поэтому он устанавливает значение $_
в $ARGV[0]
для тела цикла.
do
необходим для преобразования блока { ... }
в выражение, поэтому он может быть операндом оператора &&
. (Посмотрите, что произойдет, если вы опустите слово do
.)
(И вы пропустили точку с запятой; я отредактировал вопрос, чтобы это исправить.)