use strict; my @notgood = qw(1 5 6 9); my @goodarray = qw(1 2 3 4 5 6 7 8 9); my @good; foreach my $yes (@goodarray){ if (!grep{$_ == $yes}@notgood){ push @good , $yes; } } print "@good";