$n=0;open(OUT,">$n.out"); while(<>) { print OUT; if (/foo/) {close(OUT);$n++;open(OUT,">$n.out");} }close(OUT);