Perl 错误地提示 Name "main::FILE"只使用了一次

标签 perl file warnings

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

Name "main::FILE" used only once: possible typo...

#!/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 $_;
}

这显然不是真的,因为它被使用了 3 次。无论出于何种原因,只有标记的出现才算数。

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

最佳答案

根据documentation对于autodie:

BUGS

"Used only once" warnings can be generated when autodie or Fatal is used with package filehandles (eg, FILE ). Scalar filehandles are strongly recommended instead.

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

关于Perl 错误地提示 Name "main::FILE"只使用了一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29905969/

相关文章:

regex - Perl 替换运算符的作用是什么?

perl - 从 LWP 获取原始响应 header ?

c++ - 如何更新文件中特定行的数据?

java - 如何摆脱 try/catch block 的 IOException 捕获上的 IntelliJ 警告/错误?

ios - 代码中的 ""初始化 "is deprecated: first deprecated in ios 10.0 "警告消息

javascript - 正则表达式提取WUB内的字符

php - 大数据集的流程优化

Java:PrintWriter 对象不输出文件中的文本?

android - Android无法提示安装apk文件

ms-access - 如何摆脱VBA安全警告