Perl错误地抱怨名称“main :: FILE”仅使用一次

时间:2015-04-27 21:09:34

标签: perl file warnings

我将我的程序简化为以下简单的片段,我仍然收到消息

  

名称“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),但它不支付短脚本,是吗?那我怎么能摆脱错误的警告?

1 个答案:

答案 0 :(得分:9)

根据autodie的{​​{3}}:

  

BUGS

     

“仅使用一次”当autodie或Fatal与包文件句柄(例如,FILE)一起使用时,可以生成警告。强烈建议使用标量文件句柄。

我在Perl 5.10.1上收到警告,但没有收到5.16.3的警告,所以可能还有其他事情发生。