使用Join perl函数创建变量

时间:2011-08-04 21:56:35

标签: perl

我正在尝试这样做:

my @Amode=('1','2','3');
my @Bmode=('1','2','3');
my @Cmode=('1','2','3');
my @Atemp=('1','2','3');
my @Btemp=('1','2','3');
my @Ctemp=('1','2','3');

my @mode=('A','B','C');
foreach (@mode) {
    my $newmode = join("",$_,mode);
    my $newtemp = join("",$_,temp);
}

我想通过$ newmode访问@Amode信息。这可能吗?

2 个答案:

答案 0 :(得分:6)

我看到你在那里做的是什么,但说实话,我认为你让它变得比它需要的更复杂。

为什么不使用哈希?

my $modes = {
   'A' => [1,2,3],
   'B' => [1,2,3],
   'C' => [1,2,3],
};
foreach my $mode (keys %$modes){
    ... do something with $modes->{$mode};
}

答案 1 :(得分:4)

您不能将变量名称串在一起,但您可以创建哈希键并访问它们。

E.g。

my %data = ( "A" => \@Amode, "B" => \@Bmode, "C" => \@Cmode );
my @mode = ("A", "B", "C");

for (@mode) {
    print @{$data{$_}};
}