use List::Compare::SeenHash; my %seenAl = ( abel => 2, baker => 1, camera => 1, delta => 1, edward => 1, fargo => 1, golfer => 1, ); my %seenBob = ( baker => 1, camera => 1, delta => 2, edward => 1, fargo => 1, golfer => 1, hilton => 1, ); $lcsh = List::Compare::SeenHash->new(\%seenAl, \%seenBob); @intersection = $lcsh->get_intersection;