foreach my $n (@natures){ open (OUT, "> $n.txt") or die "blah blah $! \n" while(){ print OUT $_ if $_ =~ /$n/; } } #### while(){ foreach my $n (@natures){ if($_ =~ /$n/){ open (OUT, ">> $n.txt") or die "blah blah $! \n" print OUT $n; close OUT; } } }