open (OLD, "<$old_file.txt") || die $!; my $i; foreach (split (/====\s*\n(?=\d+)/, do{local$/;})) { open (NEW,">$old_file$i.txt") || die $!; print NEW $_; close (NEW); $i++; }