2010-01-15 22 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被刷新,所以它可能是在这种情况下