my $argN="default"; $argN=shift if @_; #### &foo (1,2,3); sub foo { my @defaults= qw (foo bar baz quux quuz boo); for (1.. @_) {shift @defaults}; @_= (@_, @defaults); ($a1, $a2, $a3, $a4, $a5, $a6) = @_; print join "\n",$a1, $a2, $a3, $a4, $a5, $a6; }