2010-01-15 32 views

回答

15

在您的例子是有用的,因爲它是在你的腳本結束並在一個可供閱讀的文件上,這是無稽之談。

我在想,如果讀取管道時有必要。通常情況下,您在EOF條件後關閉,所以我認爲這也不是必需的。

但是,如果您正在編寫,可能會在近距離檢測到各種錯誤。最簡單的例子是一個完整的磁盤。這可能因爲緩衝而關閉文件句柄纔會被報告。

你也可以use autodie(推薦以上致命,我認爲)。

0

是的,「或死」應該這樣做。

但是在實踐中檢查關閉文件時的錯誤是不必要的,因爲close可以合理地給你的唯一錯誤是「壞文件描述符」,即文件首先沒有打開 - 這意味着它是有效的無論如何,成功了。

你也可以考慮使用致命的。 (perldoc致命)

+1

如果句柄對管道打開並且進程因錯誤而終止,那麼您也可能在關閉時出錯。 – hobbs 2010-01-15 08:23:24

+0

您也可以從之前的寫入中得到一個錯誤(如果寫入被緩衝並且在系統調用返回後發生錯誤)。 – cjm 2010-01-15 08:47:15

+1

當磁盤已滿時,您也可能會收到錯誤消息。 – daxim 2010-01-15 09:23:18

7

如果該文件是打開閱讀不需要的。

然而,當文件被打開寫有可能是IO緩衝區不能在close被刷新,所以它可能是在這種情況下