No, for historical reasons the error message is a lie; it really means the value is "undefined", not the variable "uninitialized". Perl has a special value undef which is usually used in an error situation. For instance, if the %$rowDivData hash doesn't have a LOCATION_ID key, or if the value for that key was set to undef, $this_loc will be undef.