【问题标题】:Print on Closed File handle : Use Warnings- Perl [duplicate]在关闭的文件句柄上打印:使用警告-Perl [重复]
【发布时间】:2021-12-07 10:30:02
【问题描述】:

我正在尝试打开文件句柄,打印文件句柄并关闭它。

use strict;
use warnings;
open( $fh, ">>", "$filename");
print $fh $mesg."\n";
close $fh; 

现在当我尝试编译这个文件时,它会抛出错误:print() on closed filehandle $fh

这个问题是在我添加了使用警告之后才出现的。

提前致谢。

【问题讨论】:

  • 这个问题是在我添加了使用警告之后才出现的 - 不,问题一直存在,但你才刚刚意识到它:- )
  • 我所说的问题是编译错误,它也确实以预期的输出正常运行,现在我卡在这里了。

标签: perl warnings


【解决方案1】:

你应该总是检查open的返回值:

open my $fh, '>>', $filename or die "Can't open $filename: $!";

或者,您可以使用autodie,这样即使您不检查其返回值,open 也会失败。

【讨论】:

  • 感谢您的回复,我试过了,它抛出,“无法打开
  • 没有别的了吗?没有冒号?另外,是否有一个名为<location>的文件?
  • 是的,上面写着 : 21
  • 你使用的是什么操作系统?
  • 我正在使用 ssh 连接到 Linux 服务器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 2018-01-13
  • 2013-11-30
  • 1970-01-01
  • 2011-09-05
  • 2023-01-12
  • 1970-01-01
相关资源
最近更新 更多