You're not being very clear, but it sounds like you want to do something like this:
while (<INPUT>) { # look for start of record next unless /START_RECORD_MARKER/; # output the next 17 lines into a file my @seventeen; push @seventeen, scalar <INPUT> 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 (<INPUT>) { 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; }
This overwrites the two files each time round the loop, so you'll need to add some extra processing to create unique names for them. And I'm not sure what you mean about "assignments". I haven't used any variable assignments at all - so I'm probably not doing what you want.
Update: Changed the logic a bit.
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
In reply to Re: File read and re-ordering
by davorg
in thread File read and re-ordering
by KarmicGrief
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |