{ my %h; 1 if exists $h{key}; print("exists: ", (%h ? "auto-vivi" : "empty"), "\n"); } { my %h; 1 if defined $h{key}; print("defined: ", (%h ? "auto-vivi" : "empty"), "\n"); } { my %h; 1 if $h{key}; print("true: ", (%h ? "auto-vivi" : "empty"), "\n"); } __END__ exists: empty defined: empty true: empty #### # If $h{$i} and $a[$i] are not defined, $h{$i}{$j} # Creates a hash and stores a ref to it in $h{$i}. $h{$i}[$j] # Creates an array and stores a ref to it in $h{$i}. $a[$i]{$j} # Creates a hash and stores a ref to it in $a[$i]. $a[$i][$j] # Creates an array and stores a ref to it in $a[$i].