Я новичок в Perl, и у меня проблема при чтении файла по строкам. Я начал с учебника, который предложил использовать цикл while. Это работало нормально, однако я хотел иметь возможность выйти из цикла в случае ошибки. Я знаю, что могу использовать «последнее» ключевое слово, но мне это не очень нравится, я хотел бы включить его в булевское выражение while, чтобы было легче видеть, на каких условиях он останавливается. Так что я сделалPerl while loop/read file
$error=0;
while ((!$error) && (<MYFILE>)) {
print $_;
...
}
К сожалению, это не работает, потому что $ _, кажется, содержит «неинициализированное значение». По какой-то причине, когда я меняю (! $ Error) на (! 0), он снова работает. Я бы понял, что он не работал, если бы я использовал || из-за ленивой оценки, но с & & в этом случае обе стороны должны быть оценены, поэтому я не понимаю, почему она не инициализирует переменную строки.
Изучите идиомы изучаемого вами языка (любой язык) - и 'last' - одна из идиом Perl. –
Как я уже сказал в вопросе, я знаю о последнем ключевом слове. – bufferUnderrun
Итак, научитесь * обнимать * идиомы языка. –