$var = $vxdg{$node}{$disk} //= ''; #### #!/usr/bin/perl -w use strict; use Data::Dumper; my %vxdg; my $var; my ($node,$disk) = (3, "C:"); print "node= $node disk=$disk\n"; print "orignal hash is:", Dumper \%vxdg; print "\$var is: \"", (defined $var) ? $var : "undefined", "\"","\n"; $var = exists $vxdg{$node}{$disk} ? $vxdg{$node}{$disk} : ''; print "the hash is now...after checking for",'$vxdg{$node}{$disk}:', "\n", Dumper \%vxdg; print "\$var is: \"", (defined $var) ? $var : "undefined", "\"","\n"; print "\n***Starting over..***\n"; %vxdg=(); $var=undef; print "orignal hash is:", Dumper \%vxdg; $var = $vxdg{$node}{$disk} //= ''; print "the hash is now...:", "\n", Dumper \%vxdg; print "\$var is: \"", (defined $var) ? $var : "undefined", "\"","\n"; __END__ node= 3 disk=C: orignal hash is:$VAR1 = {}; $var is: "undefined" the hash is now...after checking for$vxdg{$node}{$disk}: $VAR1 = { '3' => {} }; $var is: "" ***Starting over..*** orignal hash is:$VAR1 = {}; the hash is now...: $VAR1 = { '3' => { 'C:' => '' } }; $var is: ""