Сравнение двух хэшей в Perl - PullRequest
1 голос
/ 10 июня 2011

Я сталкивался с этой ситуацией.В первом столбце hash1 - ключ, а остальное - в datavalue, аналогично в hash2.

Я пытаюсь сравнить эти два хэша и

, если записьнаходится в hash2, а не в hash1, тогда его добавление

, если запись в hash1, а не в hash2, то это падение.

Я хочу добавить и удалить список. Я хочу сравнитьс hash1 с hash2 или наоборот и получать добавления и отбрасывания без использования модулей CPAN.

Hash1

739574562   Dexheimer       James           University Libraries            Coord Fast Cataloging   jdexheim
766631088   Rolls           Erlinda         University Libraries            Prof-Support-Waldo Lib  rolls
204707142   Reish           Joseph          University Libraries            Dean University
127759797   PRIEST          DANIEL          University Libraries            Temporary Student-Non e 
133708988   BRODHEAD        MATTHEW         University Libraries            Temporary Student-Non e 
......
......
......

Hash2

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

1 Ответ

2 голосов
/ 10 июня 2011
for (keys(%h1)) {
   if (!exists($h2{$_})) {
      print("Dropped $_\n");
   }
}

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

Настройте вывод по своему вкусу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...