2013-05-01 71 views
2

我有以下的包/文件結構: 第一招:定義全局變量在Perl與`strict`

# 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;  
} 

不幸的是,我有以下錯誤:

Global symbol "@array" requires explicit package name at Package1.pm

我試圖將@array定義爲our,但它沒有幫助。 此外,我不能把它定義爲只是@array,因爲strict

有使全局變量strict任何合法的方式?

回答

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模塊控制函數和變量到用戶的命名空間