C:\temp>ppm repo add http://ppm.activestate.com/beta/MSWin32-x86/5.10/1000/ "as-beta" Downloading ActiveState Package Repository packlist...not modified Downloading uwinnipeg packlist...not modified Downloading trouchelle packlist...not modified Downloading bribes packlist...not modified Downloading WxPerl packlist...not modified Downloading as-beta packlist...done Updating as-beta database...done Repo 6 added. C:\temp>ppm s autobox Downloading ActiveState Package Repository packlist...not modified 1: autobox call methods on native types Version: 2.55 Released: 2008-05-25 Author: chocolateboy Provide: autobox version 2.55 Require: Scope::Guard version 0.03 or better Repo: as-beta CPAN: http://search.cpan.org/dist/autobox-2.55/ C:\temp>ppm i 1 Downloading autobox-2.55...done Unpacking autobox-2.55...done Generating HTML for autobox-2.55...done Updating files in site area...done 8 files installed C:\temp>cat Array\Extract.pm # -*- Perl -*- use strict; use warnings; use 5.010; package Array::Extract; use base qw/autobox/; sub import { my $class = shift; $class->SUPER::import(ARRAY => 'Array::Extract::Work'); } package Array::Extract::Work; sub extract { my $aref=shift; my @out=@{$aref}[@_]; @$aref=@{$aref}[grep !($_ ~~ @_) => 0..$#$aref]; @out; } 1; __END__ C:\temp>cat extract.pl #!/usr/bin/perl use strict; use warnings; use Array::Extract; use Data::Dumper; my @x0 = my @x = 'a'..'g'; my @y = @x->extract(2,3,-8); print Dumper \(@x0, @y, @x); __END__ C:\temp>extract.pl $VAR1 = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g' ]; $VAR2 = [ 'c', 'd', undef ]; $VAR3 = [ 'a', 'b', 'e', 'f', 'g' ];