Я пытаюсь использовать Perl для анализа выходных данных (на основе Си) программы.Каждая выходная строка представляет собой (1D) массив Perl, который я иногда хочу сохранить (основываясь на определенных условиях).
Теперь я хочу (глубоко) скопировать массив, когда его первый элементимеет определенное ключевое слово и печатает тот же скопированный массив, если другое ключевое слово совпадает с более поздним строковым массивом.
До сих пор я пытался сделать следующее:
#!/usr/bin/env perl
use strict; # recommended
use Storable qw(dclone);
...
while(1) # loop over the lines
{
# subsequent calls to tbse_line contain
# (references to) arrays of data
my $la = $population->tbse_line();
my @copy;
my $header = shift @$la;
# break out of the loop:
last if ($header eq 'fin');
if($header eq 'keyword')
{
@copy = @{ dclone \@$la };
}
if($header eq 'other_keyword')
{
print "second condition met, print first line:\n"
print "@copy\n";
}
}
Однако это печатаетпустая строка на экране, вместо содержимого скопированного массива.У меня нет большого опыта работы с Perl, и я не могу понять, что я делаю неправильно.
Есть идеи, как это сделать?