2011-02-25 52 views
0

list.pl如何使用其他文件陣列中的程序

my @array1 = qw (l2 l3 l4 l5); 
my @array2 = qe (l6 l2 l3); 

Pgm.pl

use list.pl 

print @array1; 

這可能嗎?

+0

是'qe'一個錯字?它應該是'qw'嗎? – toolic 2011-02-25 15:20:14

+0

不直接。 「my」的重點在於無法訪問超出範圍的變量。 – mob 2011-02-25 16:22:45

回答

3

嘗試require,require 'list.pl'。 您可能還需要將範圍前綴my更改爲更全局的東西。

1

如果你需要做這樣的事情,你應該建立一個模塊:

List.pm

package List; 
use Exporter; 
our @ISA = 'Exporter'; 
our @EXPORT = qw(@array1 @array2);  

our @array1 = qw(12 13 14 15); 
our @array2 = qw(16 12 13); 

Pgm.pl

use List; 
print @array1; 

但總的來說,最好是有一個編碼這使用完全限定的名稱(不需要Exporter):

use List(); 
print @List::array1; 

或者要創建一個訪問方法:

List.pm

package List; 

my @array1 = qw(12 13 14 15); # my makes these arrays private to this file 
my @array2 = qw(16 12 13); 

sub array1 {\@array1} # accessor methods provide ways to change your 
sub array2 {\@array2} # implementation if needed 

Pgm.pl

use List; 

my $array1 = List->array1; 

print @$array1; 
相關問題