use Devel::Peek qw( Dump ); sub foo { my ($x) = @_; undef($x) if !@_; Dump($x); } foo("abc"); foo("defghijkl"); foo("mno"); foo(undef); # $x = undef foo(); # undef $x foo("pqr");