## Hash 1 : %ENV ## Hash 2 : Desired my %desired = ( A => 1, B => 2 ...); ## loop through Hash 2, checking against Hash 1 for my $key ( keys %desired){ if (exists ($ENV{$key})){ warn ">$key< exists in both hashes\n"; if ( $desired{$key} eq $ENV{$key} ){ ## simple text compare warn ">$key< has the same value in both hashes\n"; } else { warn ">$key< has different values:\t ENV : $ENV{$key}\n\tDESIRED : $desired{$key}\n"; ## updating $ENV{$key} = $desired{$key}; } } else { warn ">$key< Only exists in DESIRED\n"; } }