It sounds like to handle #3, you just need to set a flag/counter to zero and continue processing. Each time you hit a page, you increment your counter. When it gets to three, you're on the third page, and you do your magic.
I originally started out with that solution in mind, but it seemed to get a little messy when passing the lines to a sub like I'm doing. I was hoping to just start reading where my main loop left off, and do all the chapter level processing in my handleSeps sub. Since I know I won't have any of the processes from steps 1 and 2 to deal with, I could bypass those, and just handle 3 seperately. It seems more "elegant" to me, and more maintainable in the future if I have to add more changes.