The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More;
use strict; use warnings FATAL => 'all';

use List::Objects::WithUtils 'array';

my $arr = array(qw/ a b c d /);
my $spliced = $arr->splice(2);
is_deeply
  [ $arr->all ],
  [ qw/ a b / ],
  'single arg splice modified orig ok';
is_deeply
  [ $spliced->all ],
  [ qw/ c d / ],
  'single arg splice ok';

$arr = array(qw/ a b c d /);
$spliced = $arr->splice(1, 3);
is_deeply
  [ $arr->all ],
  [ 'a' ],
  '2-arg splice modified orig ok';
is_deeply
  [ $spliced->all ],
  [ qw/ b c d / ],
  '2-arg splice ok';

$spliced->splice(2, 1, 'e');
is_deeply
  [ $spliced->all ],
  [ qw/ b c e / ],
  '3-arg splice ok';

done_testing;