in reply to Re^2: Question: Is undef a valid argument?
in thread Question: Is undef a valid argument?

You are still explicitly passing the first, non existent element of your array to your subroutine. If instead call your subroutine with

p1 @ARGV;

you will get your expected result.