$ perl -MData::Dump -e 'my $x = []; dd !!$x->[0]->{"aaa"}; dd $x;' "" [{}] $ perl -MList::Util=first -MData::Dump -e 'my @x; dd [first {$_} @x]' [undef] $ perl -le 'print( (undef)->{"aaa"} )' Can't use an undefined value as a HASH reference at -e line 1. $ perl -MList::Util=first -MData::Dump -e \ 'my @x; my $y=[first {$_} @x]; dd $y; dd !!$y->[0]->{"aaa"}; dd $y' [undef] "" [{}]