%hash1 = ("John", 43, "Paul", 25, "Marie", 22); %hash2 = ("john", 43, "Paul", 25, "marie", 22); while (($KEY_2, $VALUE_2) = each %hash2){ my @matches = grep { m/$KEY_2/i } keys %hash1; if (@matches) { print "$KEY_2 : Matched ", join(", ", @matches), "\n"; } else{ print "$KEY_2 : Did not match\n"; } }