Можно создать дубликат:
What's the difference between iterating over a file with foreach or while in Perl?в то время как против Еогеасп при чтении из STDIN
В цикле в то время, Perl читает строку ввода, помещает его в переменной и управляет телом цикла. Затем он возвращается, чтобы найти еще одну строку ввода . Но в цикле foreach оператор линейного ввода используется в контексте списка (поскольку foreach нуждается в списке для повторения итерации). Поэтому он должен прочитать весь ввод до того, как цикл может начать работать. Эта разница станет очевидной, когда вход поступает из вашего файла журнала веб-сервера 400 МБ! Как правило, лучше всего использовать код, например, ярлык while, который будет обрабатывать ввода строки за раз, когда это возможно. Источник-ламу книга
Так я должен использовать while
каждый раз? Каковы возможные ситуации, когда цикл foreach
будет доминировать над временем?
Спасибо за ссылку bemace. –