Perl && do {last; }; - PullRequest
       13

Perl && do {last; };

2 голосов
/ 08 октября 2011

В моей книге используется что-то вроде этого:

for($ARGV[0])
{
Expression && do { print "..."; last; };
...
}

Не является ли for -полностью неполной?Кроме того, в чем смысл do, это не может быть просто { ... }, или do имеет какое-то значение здесь?

1 Ответ

6 голосов
/ 08 октября 2011

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

do необходим для преобразования блока { ... } в выражение, поэтому он может быть операндом оператора &&. (Посмотрите, что произойдет, если вы опустите слово do.)

(И вы пропустили точку с запятой; я отредактировал вопрос, чтобы это исправить.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...