use strict; use warnings; use Data::Dumper; # Some arbitrary data my %earth = (); $earth{wind}{fire} = "water"; # Show me what we've got print Dumper \%earth; print "\n\n"; print "\nEarth has wind, wind has fire.\n" if exists $earth{wind}->{fire}; delete $earth{wind}{fire}; print "The fire is extinguised.\n" unless exists $earth{wind}->{fire}; print "Yet earth still has wind.\n" if exists $earth{wind}; delete $earth{wind}; print "But the wind blows away.\n" unless exists $earth{wind}; print Dumper \%earth; print "\n\n"; print "Relight that fire!\n" if exists $earth{wind}{fire}; # Autovivication happens here! print Dumper \%earth; print "\n\n"; #### $VAR1 = { 'wind' => { 'fire' => 'water' } }; Earth has wind, wind has fire. The fire is extinguised. Yet earth still has wind. But the wind blows away. $VAR1 = {}; $VAR1 = { 'wind' => {} }; #### if (defined $flag_assignments{$temp_key}) { print "KEY [$key] TK [$temp_key] TS [$temp_semester] FAS [$flag_assignments{$temp_key}{starrez}] FAA [$flag_assignments{$temp_key}{abbreviation}]\n"; }