"close $fh or die $!;"-line中的"or die $!"-part有用吗?
#!/usr/bin/env perl
use warnings;
use strict;
my $file = 'my_file';
open my $fh, '<', $file or die $!;
print <$fh>;
close $fh or die $!;发布于 2010-01-15 16:09:14
在您的示例中,由于它位于脚本的末尾,并且位于一个打开以供读取的文件上,因此它是不必要的。
我正在尝试思考在读取管道时是否有必要这样做。通常情况下,您在EOF条件后关闭,所以我认为这也没有必要。
但是,如果您正在编写,则可以在关闭时检测到各种错误。最简单的例子是磁盘已满。由于缓冲的原因,在关闭文件句柄之前可能不会报告此情况。
你也可以使用use autodie (我想推荐使用上面的Fatal )。
发布于 2010-01-15 16:06:20
如果文件已打开进行读取,则不需要该文件。
但是,当打开要写入的文件时,可能无法在close刷新IO缓冲区,因此在这种情况下它可能会很有用
发布于 2010-01-15 15:59:56
是的,“或死”应该是这样做的。
然而,在实践中,关闭文件时检查错误是不必要的,因为close可以合理地给你的唯一错误是“错误的文件描述符”,即文件一开始就没有打开-这意味着它无论如何都有效地成功了。
你也可以考虑使用致命的。(perldoc致命)
https://stackoverflow.com/questions/2070171
复制相似问题