my @a = ( 1, 2, 3, 4, 5, 6, 7, 8 ); my @b = ( 12, 13, 1, 2, 3, 4, 22 ); my %h = map { $_ => 1 } @a; use Data::Dumper; print Dumper \@b; @b = grep { ! exists $h{$_} } @b; print Dumper \@b;