#!/usr/bin/perl use strict; use warnings; use 5.010; use autobox; use Data::Dumper; sub ARRAY::extract { my $aref=shift; my @out=@{$aref}[@_]; @$aref=@{$aref}[grep !($_ ~~ @_) => 0..$#$aref]; @out; } my @x0 = my @x = 'a'..'g'; my @y = @x->extract(2,3,-8); print Dumper \(@x0, @y, @x); __END__