我有以下包/文件结构: 第一个:
# package1
package Package1;
use strict;
use warnings;
my @array = (1, 2, 3, 4);
return 1;
第二个:
use strict;
use warnings;
use package1;
foreach $a (@array)
{
print $a;
}
不幸的是,我有以下错误:
全局符号“@array”需要在Package1.pm
显式包名
我尝试将@array
定义为our
,但它没有帮助。
另外,由于@array
,我无法将其定义为strict
。
是否有任何合法方法可以使用strict
生成全局变量?
答案 0 :(得分:5)
包裹代码:(我们代替我的)
package Package1;
use strict;
use warnings;
our @array = (1, 2, 3, 4);
return 1;
脚本代码:
use strict;
use warnings;
use Package1;
foreach my $a (@Package1::array)
{
print $a;
}
此外,您可以使用Exporter模块将函数和变量控制到用户的命名空间中