我写在Perl子合并2散列结构相同;使合并($ A,$ B)
$ A = {
K1 => {SK1 => V1},
K2 => {SK3 => V3,SK4 => V4}
};
$ B = {
K1 => {SK2 => V2},
K3 => {SK5 => V5}
};
将导致
$ C = {
K1 => {SK1 => V1,SK2 => V2},
K2 => {SK3 => V3,SK4 => V4}
K3 => {SK5 => V5}
};
下面是我的code的合并,这是行不通的。我该如何纠正呢?谢谢你。
子合并{
我($岁,$新)= @_;
我的foreach $ K(密钥($岁)){
如果(存在$新建 - > {$ķ}){
如果(REF($ OLD-> {$ķ})EQ'HASH'){
合并($ OLD-> {$ķ},$新建 - > {$ķ});
} 其他 {
$新建 - > {$ķ} = $ OLD-> {$ķ};
}
} 其他 {
$新建 - > {$ķ} = $ OLD-> {$ķ};
}
}
返回$新;
}
解决方案
除非你这样做只是为了了解它是如何做,我会使用一个premade解决方案像的