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


in reply to Odd hash problem

You will save yourself a lot of pain (and most of your hair) by always using strict and warnings, especially when using mixed case variable names.

It wouldn't have caught this issue, but it will likely catch many others for you.

Also, you are trying to use '$1' instead of '$!' for the error variable here:

open (ZIPCODE, "<../Files/ZipCodes.txt") or die "Cannot open ZipCode: +$1\n";