使用`strict`在Perl中定义全局变量

时间:2013-05-01 12:00:25

标签: perl global-variables perl-package

我有以下包/文件结构: 第一个:

# 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生成全局变量?

1 个答案:

答案 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模块将函数和变量控制到用户的命名空间中