首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否需要"close FILEHANDLE“检查错误?

是否需要"close FILEHANDLE“检查错误?
EN

Stack Overflow用户
提问于 2010-01-15 15:57:29
回答 3查看 1.8K关注 0票数 12

"close $fh or die $!;"-line中的"or die $!"-part有用吗?

代码语言:javascript
复制
#!/usr/bin/env perl
use warnings;
use strict;

my $file = 'my_file';
open my $fh, '<', $file or die $!;

print <$fh>;

close $fh or die $!;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-15 16:09:14

在您的示例中,由于它位于脚本的末尾,并且位于一个打开以供读取的文件上,因此它是不必要的。

我正在尝试思考在读取管道时是否有必要这样做。通常情况下,您在EOF条件后关闭,所以我认为这也没有必要。

但是,如果您正在编写,则可以在关闭时检测到各种错误。最简单的例子是磁盘已满。由于缓冲的原因,在关闭文件句柄之前可能不会报告此情况。

你也可以使用use autodie (我想推荐使用上面的Fatal )。

票数 16
EN

Stack Overflow用户

发布于 2010-01-15 16:06:20

如果文件已打开进行读取,则不需要该文件。

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

票数 8
EN

Stack Overflow用户

发布于 2010-01-15 15:59:56

是的,“或死”应该是这样做的。

然而,在实践中,关闭文件时检查错误是不必要的,因为close可以合理地给你的唯一错误是“错误的文件描述符”,即文件一开始就没有打开-这意味着它无论如何都有效地成功了。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2070171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档