Используйте функцию Perl Join для создания переменных - PullRequest
2 голосов
/ 05 августа 2011

Я пытаюсь сделать что-то вроде этого:

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);
}

Я хочу получить доступ к информации @Amode через $ newmode.Это возможно?

Ответы [ 2 ]

6 голосов
/ 05 августа 2011

Я вижу, что вы пытаетесь сделать там, но, честно говоря, я думаю, вы делаете это более запутанным, чем нужно.

Почему бы не использовать хэши?

my $modes = {
   'A' => [1,2,3],
   'B' => [1,2,3],
   'C' => [1,2,3],
};
foreach my $mode (keys %$modes){
    ... do something with $modes->{$mode};
}
4 голосов
/ 05 августа 2011

Вы не можете связать вместе имена переменных, но вы можете создать хеш-ключи и получить к ним доступ.

например.

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

for (@mode) {
    print @{$data{$_}};
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...