Моя цель - удалить из необработанного стека записи, которые не в списке хороших ключей .
Как мне добиться этого наиболее эффективным способом? Код, над которым я сейчас работаю, чувствует себя перетаскиваемым. Я открыт для предложений.
Обратите внимание, что значения могут быть смехотворно большими.
Вот мои данные:
# Main data container
my %raw_stack = (
'a1~a2~a3' => 'dat1~dat2',
'b1~b2~b3' => 'dat1~dat2',
'c1~c2~c3' => 'dat1~dat2',
'd1~d2~d3' => 'dat1~dat2',
'e1~e2~e3' => 'dat1~dat2',
);
# Container of stack keys only
my @stack_keys = (
'a1~a2~a3',
'b1~b2~b3',
'c1~c2~c3',
'd1~d2~d3',
'e1~e2~e3',
);
# Container of valid keys
my @good_keys = (
'a2',
'c2',
'e2',
);
Вот код, над которым я сейчас работаю:
foreach my $good_key (@good_keys)
{
foreach my $stack_key (@stack_keys)
{
my @stack = split(/~/, $stack_key);
if ($stack[1] eq $good_key)
{
}
}
}
Я чувствую, что есть способ , а не , требующий контейнер ключей стека. Я просто не знаю, как ...