首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perl:与每个元素数组合并的深度合并

perl:与每个元素数组合并的深度合并
EN

Stack Overflow用户
提问于 2016-02-27 05:00:05
回答 1查看 207关注 0票数 0

我正在尝试合并两个散列,Hash::Merge几乎完全满足了我的需要,除了数组。我需要它来完成每个元素的合并,而不是连接数组。

例如:

代码语言:javascript
复制
use Hash::Merge qw (merge);

my %a = ( 'arr' => [ { 'a' => 'b' } ] );
my %b = ( 'arr' => [ { 'c' => 'd' } ] );

my %c = %{ merge( \%a, \%b) };

期望的结果是('arr'=>[{'a'=>'b','c'=>'d'}]),实际结果是('arr'=>[{'a'=>'b'},{'c'=>'d'}])

这可以通过使用specify_behavior来完成吗?或者还有其他的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-06 01:55:15

另一种解决方案(处理%a和%b中的不均匀散列元素)。

代码语言:javascript
复制
my %c;

foreach my $key (keys %a, keys %b) {
    my $a_ref = $a{$key};
    my $b_ref = $b{$key};
    $c{$key} = { map %$_, @$a_ref, @$b_ref };
}

use Data::Dumper;
print Dumper \%c;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35665899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档