while ($data = ) { chomp($data); foreach $id (@id) { if ($data =~/$id/) { print OUT "$data\n"; } } } #### my $regex = '(?:' . join('|', @id) . ')'; while ( $data = ) { print OUT $data if $data =~ /$regex/o; }