#!/usr/bin/perl -w use strict; use Data::Dumper; my @array = qw( 1 2 3 4 5 6 7 ); my @delList; foreach my $index (0 .. $#array) { # Delete element here if it matches. push @delList, $index if ($array[$index] & 1) == 0; # Add for deletion } splice @array, $_, 1 for reverse @delList; print Dumper \@array; #### ... my @keep; foreach my $element (@array) { # Add element here if it doesn't match. push @keep, $element if ($element & 1) != 0; # Add for deletion } ...