Perl中两种哈希的比较

Perl中两种哈希的比较,perl,comparison,hash,Perl,Comparison,Hash,我遇到过这种情况。 在hash1中,第一列是键,其余是datavalue,在hash2中也是如此 所以我想做的是比较这两个散列和 如果记录在hash2中而不是在hash1中,则它是一个add 如果记录在hash1中而不是在hash2中,那么它就是一个drop 我想要添加和删除列表。我想要与hash1和hash2进行比较,或者相反,在不使用CPAN模块的情况下获得添加和删除 哈希1 哈希2 在这种情况下,输出应如下所示: Adds : BRAMAN MELISSA

我遇到过这种情况。 在hash1中,第一列是键,其余是datavalue,在hash2中也是如此

所以我想做的是比较这两个散列和

如果记录在hash2中而不是在hash1中,则它是一个add

如果记录在hash1中而不是在hash2中,那么它就是一个drop

我想要添加和删除列表。我想要与hash1和hash2进行比较,或者相反,在不使用CPAN模块的情况下获得添加和删除

哈希1

哈希2

在这种情况下,输出应如下所示:

Adds  : BRAMAN          MELISSA         University Libraries            Temporary Non-Exempt 

Drops : Dexheimer       James           University Libraries            Coord Fast Cataloging   jdexheim
        Rolls           Erlinda         University Libraries            Prof-Support-Waldo Lib  rolls

根据您的喜好调整输出。

有一些错误,但如果使用两个大括号关闭,则可以正常工作。[供日后参考]。谢谢@ikegami.Fixed。(添加了缺少的参数。)
381753669   BRAMAN                  MELISSA             University Libraries            Temporary Non-Exempt    
127759797   PRIEST                  DANIEL              University Libraries            Temporary Student-Non e 
133708988   BRODHEAD                MATTHEW             University Libraries            Temporary Student-Non e 
204707142   Reish                   Joseph              University Libraries            Dean University
......
......
......
Adds  : BRAMAN          MELISSA         University Libraries            Temporary Non-Exempt 

Drops : Dexheimer       James           University Libraries            Coord Fast Cataloging   jdexheim
        Rolls           Erlinda         University Libraries            Prof-Support-Waldo Lib  rolls
for (keys(%h1)) {
   if (!exists($h2{$_})) {
      print("Dropped $_\n");
   }
}

for (keys(%h2)) {
   if (!exists($h1{$_})) {
      print("Added $_\n");
   }
}