use feature ":5.14"; use warnings FATAL => qw(all); use strict; use Data::Dump qw(dump pp); sub aaa($) {my ($a) = @_; $a->{a} = 1; say STDERR dump($a); } aaa({}); aaa(undef); aaa(0); #### { a => 1 } { a => 1 } Can't use string ("0") as a HASH ref while "strict refs" in use at C:\Phil\Perl\PerlMonks\undef2.pm line 8.