Um zu überprüfen, ob die Variable existiert, gibt es IMHO einen anderen Befehl, der mir aber momenten nicht einfallen will.
Dabei ist er gar nicht sooo schwierig zu erraten:
exists EXPR
Returns TRUE if the specified hash key exists in its hash array, even if the corresponding value is undefined.
print "Exists\n" if exists $array{$key};
print "Defined\n" if defined $array{$key};
print "True\n" if $array{$key};
A hash element can be TRUE only if it's defined, and defined if it exists, but the reverse doesn't necessarily hold true.
Note that the EXPR can be arbitrarily complicated as long as the final operation is a hash key lookup:
if (exists $ref->[$x][$y]{$key}) { ... }