我在做什麼錯了?打開的文件不是空的。但我仍然得到全局符號需要顯式包裝
全局符號 「$ tabbb」 需要明確包名在mix.pl線8
#!/usr/bin/perl
use strict;
use warnings;
open FILE, "<", "seeds.data" or die $!;
my @tab = <FILE>;
print @$tab;
我在做什麼錯了?打開的文件不是空的。但我仍然得到全局符號需要顯式包裝
全局符號 「$ 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
和use warnings
,其中一個好處是,如果您使用未聲明的變量,Perl將警告您。該錯誤消息
全局符號「$ tabbb」需要在mix.pl線8
是說,明確包名稱,因爲你正在使用strict
,你不能指名爲$tabbb
變量尚未宣佈。你行
print @$tab;
被提領標量變量$tab
作爲一個數組,因爲你還沒有宣佈$tab
我想象那是錯誤消息意味着什麼。但是你做具有可變@tab
數組,其中包含你打開的文件中的內容,所以寫
print @tab;
代替。
最重要的是,讀取文件一行一行地寫
use strict;
use warnings;
open my $fh, '<', 'seeds.data' or die $!;
while (<$fh>) {
print;
}
是真正的錯誤消息?沒有名爲'$ tabbb'的變量。 – Barmar
請勿使用裸詞文件句柄。改用'my $ fh'。 – squiguy
對不起,錯誤是從舊的「版本」複製的 – nervosol