perl -le'$ret_val = my_sub(1, "", 2, "", "", 3); sub my_sub{$arg1 = shift;$undef1 = shift;$arg2 = shift;$undef2 = shift;$undef3 = shift;$arg3 = shift; print "Arg1:", $arg1, " Undef1:", $undef1, " Arg2:", $arg2, " Undef2:", $undef2; }' Prints: Arg1:1 Undef1: Arg2:2 Undef2: