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";