my @A = ( ... ); my @B = ( ... ); my %B = map { $_ => !!1 } @B; # "A but B" grep { !$B{$_} } @A;