Это должно быть достаточно хорошо:
for my $href ($a, $b) {
while (my($k,$v) = each %$href) {
$c->{$k} = $v;
}
}
Если вы не хотите блокировать дубликаты, возможно, из-за проблем с заказом, вместо этого используйте:
for my $href ($a, $b) {
while (my($k,$v) = each %$href) {
push @{ $c->{$k} }, $v;
}
}
Преимущество выполнения этой очень простой операции самостоятельно заключается в том, что она помогает разрабатывать средства с базовыми структурами данных Perl, что очень важно для свободного владения языком.
Обратите внимание, что это поверхностные копии, поэтому ссылки будут предоставлены. Это не глубокая копия.
Я использовал each
вместо keys
, чтобы он масштабировался в случае использования хэшей DBM с миллионами элементов.