我将我的程序简化为以下简单的片段,我仍然收到消息
名称“main :: FILE”仅使用一次:可能错字......
#!/usr/bin/perl -w
use strict;
use autodie qw(open close);
foreach my $f (@ARGV) {
local $/;
open FILE, "<", $f;
local $_ = <FILE>; # <--- HERE
close FILE;
print $_;
}
这显然是不正确的,因为它被使用了三次。无论出于何种原因,只有标记的事件计数。
我知道打开文件的更好方法(使用$ filehandle),但它不支付短脚本,是吗?那我怎么能摆脱错误的警告?
答案 0 :(得分:9)
根据autodie
的{{3}}:
BUGS
“仅使用一次”当autodie或Fatal与包文件句柄(例如,FILE)一起使用时,可以生成警告。强烈建议使用标量文件句柄。
我在Perl 5.10.1上收到警告,但没有收到5.16.3的警告,所以可能还有其他事情发生。