my $name = "file000"; open STDOUT, ">>file000" or die "cannot append to file000: $!"; while (<>) { if (/Experiment/) { open STDOUT, ">>".(++$name) or die "Cannot append to $name: $!"; } print; if (/Reagent Lot/) { open STDOUT, ">>file000" or die "Cannot re-append to file000: $!"; } }