我在寫我的第一個perl腳本,無法編譯它。我想讀入一個文件並將每條與正則表達式匹配的行輸出到一個新文件中。我得到一個「全局符號需要顯式包名」的錯誤,這似乎與我讀過的變量作用域有關。我無法弄清楚我的代碼有什麼問題。
代碼:
#!/usr/bin/perl -w
use strict;
use warnings;
print "Stripping lines from data dump where WREN column is FFF\n"
my $infilename = "./test_in.txt";
my $outfilename = "./test_out.txt";
my $in = undef;
open($in, "<", $infilename) or die "Can't open $infilename: $!";
open(my $out, ">", $outfilename) or die "Can't open $outfilename: $!";
while (<$in>) { # assigns each line in turn to $_
if (/.{73}FFF/){
print $out $_;
}
}
錯誤消息:
syntax error at strip_nonwrites.pl line 8, near "my "
Global symbol "$infilename" requires explicit package name at strip_nonwrites.pl line 8.
Global symbol "$infilename" requires explicit package name at strip_nonwrites.pl line 12.
Global symbol "$infilename" requires explicit package name at strip_nonwrites.pl line 12.
Execution of strip_nonwrites.pl aborted due to compilation errors.
在第5行的print語句中添加一個分號';'。當您使用'use warnings'時,不需要在'shebang'行中添加'-w',它們都有相同的含義。 – serenesat
@serenesat,'-w'也會影響模塊(假設它們沒有'使用警告')。 – ikegami
[全局符號需要顯式包名稱](http:// stackoverflow。COM /問題/ 3141412 /全局符號需要顯式包名) –