http://qs1969.pair.com?node_id=871553


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

Or just store the original key as the value of the canonicalized (lower-cased) hash. Look up in the lower case hash to find the key, then use the value of that hash to look up the value in the original hash.
#! /usr/bin/perl %hash1 = ("John", 43, "Paul", 25, "Marie", 22); %hash2 = ("john", 43, "Paul", 25, "marie", 22); my %lc_hash1 = map { lc $_ => $_ } keys %hash1; while (($KEY_2, $VALUE_2) = each %hash2){ if (exists $lc_hash1{lc $KEY_2}){ print "$KEY_2 : Matched\n"; print "Keys are: $lc_hash1{lc $KEY_2}, $KEY_2\n"; print "Values are: $hash1{$lc_hash1{lc $KEY_2}}, $VALUE_2\n"; } else{ print "$KEY_2 : Did not match\n"; } }

Replies are listed 'Best First'.
Re^3: Ignore Case when comparing Hash Keys
by avidcoder (Novice) on Nov 15, 2010 at 19:56 UTC
    ctilmes --- Thanks a lot. This works great!!! Just the way I want it to. You saved me a ton of time. Thankyou all.