做“或死$!” - 参与“关闭$ fh或死$!;” - 行什么好?
#!/usr/bin/env perl
use warnings;
use strict;
my $file = 'my_file';
open my $fh, '<', $file or die $!;
print <$fh>;
close $fh or die $!;
答案 0 :(得分:16)
在您的示例中,因为它位于脚本的末尾,而且在打开以供阅读的文件中,它是不必要的。
我正在考虑在阅读烟斗时是否有必要。通常你会在EOF条件后关闭,所以我认为也没有必要。
但是,如果您正在编写,则可以在关闭时检测到各种错误。最简单的例子是一个完整的磁盘。在关闭文件句柄之前,可能由于缓冲而无法报告。
你也可以use autodie
(我推荐以上致命推荐)。
答案 1 :(得分:8)
如果文件已打开以供阅读,则不需要。
但是,当文件打开以进行写入时,可能无法在close
刷新IO缓冲区,因此在这种情况下它可能很有用
答案 2 :(得分:0)
是的,“或死”应该这样做。
然而实际上在关闭文件时检查错误是不必要的,因为关闭可能合理地给你的唯一错误是“错误的文件描述符”,即文件首先没有打开 - 这意味着它实际上是成功的反正。
你也可以考虑使用Fatal。 (perldoc Fatal)