my @a = ( 42, 42, 43, 43, 43, 44, 45, 46 ); my @b = ( 43, 45 ); for my $i ( 0 .. $#b ) { for my $j ( 0 .. $#a ) { next unless defined $a[ $j ]; $a[ $j ] = undef, last if $a[ $j ] == $b[ $i ]; } } @a = grep { defined } @a; print join ', ', @a; print "\n";