chomp ( my @id = ); my %ids; @id{@id} = (1) x @id; # dropped the chomp because you added \n back in while ( my $data = ) { my ($curr_id) = $data =~ /(user\d\d-\d\d\.dept\d\d)/; if ( $curr_id and exists $id{ $curr_id } ) { print OUT $data; } }