in reply to Hash/Associative Array

If you want to declare a hash, just use my %hash;; it starts off empty. Some people are obsessive about initializing things and say my %hash = ();; this is not necessary, but if it makes you feel better, go ahead. my %hash = {}; does something quite different; it declares a hash and sets one key to something like HASH(0xDEAF0) with a value of undef. This is almost certainly not what you want, and the {} was meant as (), so perl warns you.