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

maa*_*nus 3 perl warnings file

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

名称"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 $_;
}
Run Code Online (Sandbox Code Playgroud)

这显然是不正确的,因为它被使用了三次.无论出于何种原因,只有标记的事件才算数.

我知道打开文件的更好方法(使用$ filehandle),但它不支付短脚本,是吗?那我怎么能摆脱错误的警告呢?

Thi*_*Not 10

根据该文件autodie:

BUGS

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

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