Perl错误地抱怨Name";main::FILE";只用一次
我将我的程序简化为下面的一个小片段,我仍然得到了消息 名称“main::FILE”仅使用一次:可能的键入错误Perl错误地抱怨Name";main::FILE";只用一次,perl,file,warnings,Perl,File,Warnings,我将我的程序简化为下面的一个小片段,我仍然得到了消息 名称“main::FILE”仅使用一次:可能的键入错误 #/usr/bin/perl-w 严格使用; 使用autodie qw(开-关); 每个我的$f(@ARGV){ 本地$/; 打开文件,根据forautodie: 虫子 当autodie或Fatal与包文件句柄(例如文件)一起使用时,会生成“仅使用一次”警告。强烈建议使用标量文件句柄 我在Perl 5.10.1上得到了警告,但不是5.16.3,因此可能还有其他原因。1.无法复制。2.为什
#/usr/bin/perl-w
严格使用;
使用autodie qw(开-关);
每个我的$f(@ARGV){
本地$/;
打开文件,根据forautodie
:
虫子
当autodie或Fatal与包文件句柄(例如文件)一起使用时,会生成“仅使用一次”警告。强烈建议使用标量文件句柄
我在Perl 5.10.1上得到了警告,但不是5.16.3,因此可能还有其他原因。1.无法复制。2.为什么添加6个字符如此困难?实际上可以通过将foreach
更改为for
来弥补。我也无法复制它(使用Perl 5.20.2)。如果将-w
从shebang中删除并替换为使用警告;
?您的Perl解释器是什么版本的?Perl-v
@ikegami 2.这并不困难,只是我习惯了旧的方式。而且,文件
显然是一个文件,它是一个很好的标识符。假设我同意你的观点,FILE
显然是一个文件句柄,$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 $_;
}