Используйте имя переменной, чтобы назвать динамически созданный массив (или скаляр) - PullRequest
0 голосов
/ 20 июня 2020

Я хочу использовать значение $ i в @ array_mem_depth_ $ i, чтобы мои динамически создаваемые массивы выглядели как @ array_mem_depth_1024,@array_mem_depth_512.

Как этого добиться?

while(<FH>) {
$line = $_;
chomp($line);
foreach my $i (@depth_uarr) { if ( $line =~ /$i/) {push (@array_mem_depth_${i}, $line);} }
}

Спасибо

1 Ответ

5 голосов
/ 20 июня 2020

Я бы не рекомендовал иметь переменные с именами c Dynami. Хотя это может быть технически осуществимо, это сделает ваш код намного более сложным без очевидной выгоды.

Вместо этого, почему бы не иметь ха sh ссылок на массивы. Исходя из вашего частичного кода, это будет выглядеть так:

my %h;
while(my $line = <FH>) {
    chomp($line);
    foreach my $i (@depth_uarr) { 
        if ( $line =~ /$i/ ) {
            push @{ $h{$i} }, $line;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...