如何在程序中使用其他文件数组

时间:2011-02-25 11:09:36

标签: perl

list.pl

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

Pgm.pl

use list.pl 

print @array1; 

有可能吗?

2 个答案:

答案 0 :(得分:3)

尝试requirerequire 'list.pl'。 您可能还需要将范围前缀my更改为更全局的内容。

答案 1 :(得分: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;