Ale*_*lex 2 perl global-variables perl-package
我有以下包/文件结构:第一个:
# package1
package Package1;
use strict;
use warnings;
my @array = (1, 2, 3, 4);
return 1;
Run Code Online (Sandbox Code Playgroud)
第二个:
use strict;
use warnings;
use package1;
foreach $a (@array)
{
print $a;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我有以下错误:
全局符号"@array"需要Package1.pm中的显式包名称
我试图定义@array为our,但它没有帮助.我也不能将它定义为公正@array,因为strict.
有没有合法的方法来制作全局变量strict?
包裹代码:(我们而不是我的)
package Package1;
use strict;
use warnings;
our @array = (1, 2, 3, 4);
return 1;
Run Code Online (Sandbox Code Playgroud)
脚本代码:
use strict;
use warnings;
use Package1;
foreach my $a (@Package1::array)
{
print $a;
}
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用Exporter模块将函数和变量控制到用户的命名空间中