my %hash = ( key => "value", key2 => "value2" ); # OK my %hash = ( "key", "value", "key2", "value2" ); # OK (same) my %hash = ( "key", "value", "key2" ); # WRONG - gives the error you describe my %hash = ( undef ); # WRONG - equivalent to what you were doing!