我有一个关于Perl和范围的问题。我有一个有很多各种变量的公共文件。我需要在我的主脚本中使用通用文件,但我无法访问这些变量;他们似乎超出了它的范围。我认为一个our
声明可以解决这个问题,但似乎并不奏效。为什么我的Perl脚本不能看到我在另一个文件中定义的变量()?
脚本1:common.pl
#!/usr/bin/perl
our $var1 = "something";
our $var2 = "somethingelse";
脚本2:ftp.pl
#!/usr/bin/perl
use strict;
use warnings;
require('common.pl');
print $var1;
我得到的错误:
Global symbol "$var1" requires explicit package name
全局符号,$ VAR1,需要明确的包名。 – jrockway 2009-10-11 23:53:27
阅读http://perl.plover.com/FAQs/Namespaces.html – 2009-10-12 13:09:15
有效Perl编程中的项目1(ISBN:0201419750,Joseph Hall和Randal Schwartz)的标题是:了解你的命名空间。这是一本很好的参考书,也是一本很棒的书。 – 2009-10-12 17:52:21