http://www.perlmonks.org?node_id=11290


in reply to diff of two hashes.

If you want to find the keys in one hash that are not in the other, you can use this (from the Perl Cookbook, 5.11):
my @this_not_that=(); foreach (keys %hash1) { push(@this_not_that, $_) unless exists $hash2{$_}; }
If the two hashes have the same keys and you want to see which elements have different values, you could use something like this (assuming the hashes contain strings, change the comparison as necessary):
@different=grep { $hash1{$_} ne $hash2{$_} } keys %hash1; foreach (@different) { print "hash1{$_}: $hash1{$_}\n"; print "hash2{$_}: $hash2{$_}\n--\n"; }

--ZZamboni