; it starts off empty. Some people are obsessive about initializing things and say
; this is not necessary, but if it makes you feel better, go ahead.
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.