use strict; use warnings; my $num = 1; my $recLines = 2; while (!eof DATA) { ## Open the file once every iteration my $outfile = sprintf("Int_%s.txt", $num); print "---> Create file $outfile\n"; printf("%-1s%-12s%-8s%-4s%-4s%-10s%-33s\n", "H", $outfile, "20101221", "1230", $num, $., " "); for (1 .. $recLines) { last if eof DATA; last if ! defined (my $line = ); print $line; } printf("%-1s%-12s%-8s%-4s%-4s%-10s%-33s\n", "T", $outfile, "20101221", "1230", $num, $., " "); print "<--- Close file $outfile\n"; ++$num; } __DATA__ 1234567|HP|GASS 1234567|TP|GASS 3456789|YU|GASS 3245678|TY|GASS