in reply to Re^2: Ignore Case when comparing Hash Keys
in thread Ignore Case when comparing Hash Keys

avoidcoder:

I don't advise it, but you could do something like:

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

Note: Untested, you can keep all the bits when it breaks, etc.

...roboticus

Replies are listed 'Best First'.
Re^4: Ignore Case when comparing Hash Keys
by avidcoder (Novice) on Nov 15, 2010 at 19:25 UTC
    Robotics Thanks. This works in Key Comparison but how do i get the value of the corresponding Key in the if block? Thanks again.

      avidcoder:

      Basically the same way:

      %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"; } }

      ...roboticus