I was taking for granted, based on the OP examples, that the input would always be one RS line followed by one RAd line followed by one ore more RC lines. If that's true, then "$line_out" always starts fresh on each RS line, and accumulates content until the first RC line, at which point the current RC line is only appended in the print statement, and not permanently appended to $line_out.