in reply to return a hash or undef

This is why the book "Perl Best Practices" recommends an empty return; over return undef; - in list context it will produce the empty list, which evaluates to false.