sub return_ref { return if rand < 0.3; my %hash; $hash{foo} = 'bar' if rand < 0.5; return \%hash; } my $ref = return_ref(); if (ref($ref) eq 'HASH' and %$ref) { print "We have a non-empty hash reference.\n"; } else { print "No hash reference, or empty hashref.\n"; }