我需要"关闭FILEHANDLE"检查错误吗?

sid*_*com 11 perl

做"或死$!" - 参与"关闭$ 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 $!;
Run Code Online (Sandbox Code Playgroud)

Fal*_*rub 16

在您的示例中,因为它位于脚本的末尾,并且在打开以供阅读的文件中,所以它是不必要的.

我正在考虑在阅读管道时是否有必要.通常你在EOF条件后关闭,所以我认为也没有必要.

但是,如果您正在编写,则可以在关闭时检测到各种错误.最简单的例子是一个完整的磁盘.由于缓冲关闭文件句柄,因此可能无法报告此情况.

你也可以use autodie(推荐以上Fatal,我认为).


cat*_*alk 8

如果文件打开以供不需要的阅读.

但是,当文件打开以进行写入时,可能无法刷新IO缓冲区close,因此在这种情况下它可能很有用