sub truth_table { my $hash = shift; print " true? defined? exists?\n"; for my $key (qw(foo bar baz bla)) { print " $key "; printf " %-8d", $hash->{$key}; printf " %-8d", defined $hash->{$key}; printf " %-8d", exists $hash->{$key}; print "\n"; } } truth_table( { foo => 1, # true bar => 0, # false baz => undef, # undefined # bla # doesn't exist } ); __END__ true? defined? exists? foo 1 1 1 bar 0 1 1 baz 0 0 1 bla 0 0 0