every write command is followed by next 4 lines of write data
If you're certain that it's always exactly four lines, and if you are certain the code in your while loop won't grow any larger than this, then I think reading from the file in two places inside the same piece of code may be an acceptable solution, as in my @lines; push @lines, scalar <IN_FILE> for 1..4; (BTW, note "open" Best Practices). However, if any of the aforementioned conditions aren't true, then I would very strongly recommend a state machine instead.
Update: This also means that the input data you showed isn't actually representative of your actual input data. Please provide some representative sample input, in <code> tags. See also How do I post a question effectively?, I know what I mean. Why don't you?, and Short, Self-Contained, Correct Example.