如何在Perl中返回具有给定名称的数组

时间:2014-05-29 07:09:29

标签: arrays perl

我有很多数组保存为自动化的数据,现在我需要一个方法来返回一个给定名称的数组。我怎么能这样做。请帮助。

#!/usr/bin/perl -w
use strict;

my @array1 = (1..4);

sub retArray {
    my $arr = shift;
    print $arr;
    ##Here i need to get the array with String which i got from args 
}

my @arrayReturned = retArray('array1');

use Data::Dumper;

print "\n";
print Dumper(\@array1);

提前致谢

2 个答案:

答案 0 :(得分:2)

将数组放入哈希:

my %arrays = ( 'array1' => [1..4] );

sub retArray {
    my $array_name = shift;
    return @{$arrays{$array_name}};
}

列表可能更合适,请参阅:How can I use a variable as a variable name in Perl?

my @arrays;
push @arrays, \@array1;
push @arrays, \@array2;

sub retArray {
    my $array_num = shift;
    return @{$arrays[$array_num]};
}

答案 1 :(得分:1)

使用数组名称作为键创建一个哈希,并为包含所需值的anon数组引用值。

说出类似的话:

my %map_array_ref;
$map_array_ref{'array1'} = [1,2,3];