while () {
# look for start of record
next unless /START_RECORD_MARKER/;
# output the next 17 lines into a file
my @seventeen;
push @seventeen, scalar for 1 .. 17;
# reformat the contents of @seventeen in some way
open OUTPUT, '>', 'first_part_of_record.txt'
or die $!;
print OUTPUT @seventeen;
close OUTPUT;
# output the rest of the record into another file
my @rest;
while () {
last if /END_RECORD_MARKER/;
push @rest, $_;
}
# reformat @rest in some way
open OUTPUT, '>', 'next_part_of_record.txt'
or die $!;
print OUTPUT @rest;
close OUTPUT;
}