import csv
reader = csv.reader(open(r"addresses.csv", "rb"), delimiter="\t")
for lCols in reader:
try:
if len(set([szIP.split(".")[3] for szIP in lCols])) == 1:
print "\t".join(lCols)
except:
pass # Skip non IP address formatted rows
我有一个Perl脚本(上面的代码是其中的一部分),它在测试服务器上运行良好,但在生产服务器上显示编译错误。错误是
&verify_se_linecount ( \@rows );
### Drop the modified file
open ( OUT, "> $RESOLVED_DIR\\$filenameonly" );
# Loop through each row in the EDI file
foreach my $row ( @rows ) {
print OUT $row . "$ROW_DELIM"; # Line 164
}
close OUT;
变量在包含的Global symbol `$ROW_DELIM` requires explicit package name at <script_name> line 164
中声明,该包在此脚本中导入。它不会显示该包中使用的其他对象的任何错误。
答案 0 :(得分:2)
无法看到您如何导出/导入该功能 - 它将成为以下之一:
my
声明了该内容。 尝试$OtherPackageName::ROW_DELIM
,看看是否有效。
答案 1 :(得分:0)
仅在主代码使用的模块中声明变量是不够的:您必须从该模块导出以使其在其他地方可见
如果您需要任何进一步的帮助,那么您必须显示该模块的内容,以及将其导入主代码的语句