我是Perl新手,在逐行讀取文件時遇到問題。我從一個建議使用while循環的教程開始。這工作得很好,但是我想要有一個選項可以在出現錯誤時跳出循環。我知道我可以使用「last」關鍵字,但我不太喜歡這一點,我想將它包含在while循環的布爾表達式中,以便更容易地瞭解它停止的條件。所以我做了Perl while循環/讀取文件
$error=0;
while ((!$error) && (<MYFILE>)) {
print $_;
...
}
不幸的是,這不起作用,因爲$ _似乎包含「未初始化的值」。出於某種原因,當我將(!$ error)更改爲(!0)時,它會再次運行。我會理解,如果我使用了||,那麼它不起作用由於懶惰的評估,但在這種情況下,需要評估兩邊,所以我不明白爲什麼它不初始化行變量。
瞭解您正在學習的語言的習語(任何語言) - 而「last」是Perl的成語之一。 – 2010-08-25 14:33:03
正如我在問題中所說的,我知道最後一個關鍵字。 – bufferUnderrun 2010-08-25 14:48:28
好,那麼,學會*擁抱*語言的成語。 – 2010-08-25 21:22:56