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

Perl 如何在程序中使用其他文件数组,perl,Perl,list.pl my @array1 = qw ( l2 l3 l4 l5 ); my @array2 = qe ( l6 l2 l3 ); Pgm.pl use list.pl print @array1; 可能吗 试试,需要'list.pl'。 您可能还需要将作用域前缀my更改为更全局的前缀。尝试,require'list.pl'。 您可能还需要将作用域前缀my更改为更全局的值。如果需要这样做,您应该设置一个模块: List.pm: package List; use Ex

list.pl

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

use list.pl 

print @array1; 
可能吗

试试,
需要'list.pl'
。 您可能还需要将作用域前缀
my
更改为更全局的前缀。

尝试,
require'list.pl'

您可能还需要将作用域前缀
my
更改为更全局的值。

如果需要这样做,您应该设置一个模块:

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);
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;
 print @array1;
use List;

my $array1 = List->array1;

print @$array1;
但一般来说,最好使用完全限定名对其进行编码(无需使用
导出器
):

或创建访问器方法:

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);
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;
 print @array1;
use List;

my $array1 = List->array1;

print @$array1;

如果需要执行类似操作,应设置一个模块:

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);
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;
 print @array1;
use List;

my $array1 = List->array1;

print @$array1;
但一般来说,最好使用完全限定名对其进行编码(无需使用
导出器
):

或创建访问器方法:

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);
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;
 print @array1;
use List;

my $array1 = List->array1;

print @$array1;

不直接。
my
的全部目的是使其无法访问其范围之外的变量,而不是直接访问。
my
的全部目的是使其无法访问超出其范围的变量。