我做错了什么?打开的文件不为空。但我仍然得到
全局符号“$tabbb”需要在 mix.pl 第 8 行显示包名。
#!/usr/bin/perl
use strict;
use warnings;
open FILE, "<", "seeds.data" or die $!;
my @tab = <FILE>;
print @$tab;
你想要print @tab;
而不是print @$tab;
.
你已经正确使用了use strict
and use warnings
,其中一个好处是如果你使用了一个你没有声明的变量,Perl 会警告你。错误信息
全局符号“$tabbb”需要在 mix.pl 第 8 行显示包名。
就是说,因为您正在使用strict
,所以您不能引用$tabbb
尚未声明的名为的变量。你的线路
print @$tab;
将标量变量取消引用$tab
为数组,并且由于您尚未声明 a$tab
我想这就是错误消息的含义。但是你确实有一个包含你打开的文件内容的数组变量@tab
,所以写
print @tab;
反而。
最重要的是,逐行读取文件并写入
use strict;
use warnings;
open my $fh, '<', 'seeds.data' or die $!;
while (<$fh>) {
print;
}