0
我有一个键名数组,需要从散列中删除不在此列表中的任何键。Perl:删除散列中不存在的数组中的元素
我收集的哈希删除键是在遍历它是一件坏事,但它似乎工作:
use strict;
use warnings;
use Data::Dumper;
my @array=('item1', 'item3');
my %hash=(item1 => 'test 1', item2 => 'test 2', items3 => 'test 3', item4 => 'test 4');
print(Dumper(\%hash));
foreach (keys %hash)
{
delete $hash{$_} unless $_ ~~ @array;
}
print(Dumper(\%hash));
给出了输出:
$VAR1 = {
'item3' => 'test 3',
'item1' => 'test 1',
'item2' => 'test 2',
'item4' => 'test 4'
};
$VAR1 = {
'item3' => 'test 3',
'item1' => 'test 1'
};
谁能给我解释一下这样做的更好/更清洁/更安全的方式?
非常感谢。
非常感谢,这对我很好! –
有没有办法做到这一点,没有临时哈希来保存片? –