2015-09-03 122 views
1

所以我一直试图找到解决这一点,但到目前为止一切,我在网上看了有做与范围问题,而不是与声明变量关键词。然而,我似乎无法解决这些问题,因为我已经宣布了所有的问题,至少对我来说,似乎我没有范围问题。我对下面的代码错误是:的Perl:全局符号需要明确包名称

Global symbol "$filename" requires explicit package name at read_ids.pl line 6. 
Global symbol "$filename" requires explicit package name at read_ids.pl line 8. 
Global symbol "$filename" requires explicit package name at read_ids.pl line 9. 
Global symbol "$filename" requires explicit package name at read_ids.pl line 22. 

代码:

use strict; 
use warnings; 

#Create array of IDs. 
my @ids 
my $filename = 'ids.csv'; 

open(my $fh, '<:encoding(UTF-8)', $filename) 
    or die "Could not open file '$filename'."; 

#Read line using the readline operators <>. 
while (my $row = <$fh>) { 
#Remove any newline characters from line using the chomp() command. 
    chomp $row; 
    push @ids,'$row'; 
# print "$row\n"; 
} 

foreach (@ids) { 
    print "$_\n"; 
} 
print "Read '$filename' successfully.\n"; 
+0

你错过了;在我的@ids之后。它应该是我的@ids; – Rajarshi

回答

3

你的代码需要声明

my $filename; 

当前不包含该语句。它包含以下无效语句:

my @ids my $filename = 'ids.csv'; 

Perl甚至告诉过你它。

syntax error at a.pl line 6, near "@ids 
my " 

修复第一个错误。通过添加缺少的分号来完成。

+0

谢谢,这样一个简单的修复。这是最近工作得到我的。你是对的,我只是注意到它给了我那个错误。 –

相关问题