c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "use 5.010; ;; sub my_splicer { my ($ar, $offset, $len, @list) = @_; $offset //= 0; $len //= @$ar - $offset; return splice @$ar, $offset, $len, @list; } ;; use constant TEST => qw(one two three four five six seven eight); ;; my $ar; my @spl; my @args; ;; $ar = [ TEST ]; @args = (); @spl = my_splicer($ar, @args); dd \@spl, $ar; ;; $ar = [ TEST ]; @args = (2); @spl = my_splicer($ar, @args); dd \@spl, $ar; ;; $ar = [ TEST ]; @args = (2, 3); @spl = my_splicer($ar, @args); dd \@spl, $ar; ;; $ar = [ TEST ]; @args = (2, 3, qw(FOO BAR)); @spl = my_splicer($ar, @args); dd \@spl, $ar; " ( ["one", "two", "three", "four", "five", "six", "seven", "eight"], [], ) ( ["three", "four", "five", "six", "seven", "eight"], ["one", "two"], ) ( ["three", "four", "five"], ["one", "two", "six", "seven", "eight"], ) ( ["three", "four", "five"], ["one", "two", "FOO", "BAR", "six", "seven", "eight"], )