defined auf hashes und arrays anzuwenden ist sinnfrei. man kann
beide datentypen zwar mit undef() setzen, aber das ist ebenso
sinnfrei. entweder ein array / hash ist leer oder es ist was drin.
in perldoc -f defined steht zudem:
Quote
Use of "defined" on aggregates (hashes and arrays) is deprecated.