如何合并在Perl 2深散列并在、Perl、深散列

2023-09-11 06:02:20 作者:眉眼做山河

我写在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-> {$ķ};
  }
 }
 返回$新;
}
 
perl 程序问题

解决方案

除非你这样做只是为了了解它是如何做,我会使用一个premade解决方案像的