$ perl -le" sub mysplice (\@$$@){ warn@_} sub QQQ { mysplice(@_) } QQQ 1, @a, " Not enough arguments for main::mysplice at -e line 1, near "@_) " Execution of -e aborted due to compilation errors. $ perl -le" sub mysplice (\@$$@){ warn@_} sub QQQ(\@$$@) { mysplice(@_) } QQQ 1, @a, " Not enough arguments for main::mysplice at -e line 1, near "@_) " Type of arg 1 to main::QQQ must be array (not constant item) at -e line 1, at EOF Not enough arguments for main::QQQ at -e line 1, at EOF Execution of -e aborted due to compilation errors. $ perl -le" sub mysplice (\@$$@){ warn@_} sub QQQ(\@$$@) { mysplice(@_) } QQQ @a, 1" Not enough arguments for main::mysplice at -e line 1, near "@_) " Not enough arguments for main::QQQ at -e line 1, at EOF Execution of -e aborted due to compilation errors. $ perl -le" sub mysplice (\@$$@){ warn@_} sub QQQ(\@$$@) { mysplice(@_) } QQQ @a, 1,1" Not enough arguments for main::mysplice at -e line 1, near "@_) " Execution of -e aborted due to compilation errors.