Тайная связь между foreach и for

Оказывается, для парсера Perl ключевое слово foreach в точности эквивалентно ключевому слову for. Иначе говоря, каждый раз, когда Perl встречает одно из этих слов, он не отличает одно от другого. Чтобы узнать, что вы имели в виду, Perl заглядывает в круглые скобки. Если там находятся две точки с запятой, значит, это счетный цикл for (вроде тех, которые мы только что рассматривали). Если в скобках нет двух точек с запятой, значит, Perl имеет дело с циклом foreach:

for (1..10) { # На самом деле цикл foreach от 1 до 10
print "I can count to $_!\n";
}

В действительности это цикл foreach, но в записи использовано словоfor. Во всех остальных примерах книги мы будем полностью записывать ключевое слово foreach там, где оно встречается. Но неужели вы думаете, что в реальном мире программисты Perl будут вводить четыре лишних символа? Во всех программах, кроме кода новичков, все всегда пишут for. Чтобы понять, какой цикл используется в программе, вам придется действовать по примеру Perl и поискать символы «;». В программах Perl «настоящий» цикл foreach почти всегда является предпочтительным. В цикле foreach (записанном с ключевым словом for) из предыдущего примера мы сразу видим, что цикл считает от 1 до 10. Но видите ли вы, в чем проблема счетного цикла, который пытается сделать то же самое? Не заглядывайте в сноску, пока не будете уверены в том, что знаете правильный ответ:

for ($i = 1; $i < 10; $i++) { # Ошибка! Что-то здесь не так!
print "I can count to $_!\n";
}

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Автоинкремент и автодекремент
Значение автоинкремента
Значение ускоренного логического оператора
Логические операторы
Метки блоков