This seems to work as long as all the commands you type after script work on a dumb terminal. I was just wondering if perl had a more robust solution

How could removing terminal-specific control sequences be any more robust than not having them in the first place?

The next best solution would be to have some program which process's your terminal's control sequences to generated a flat file. However, emulating a devices is rather complex and error-prone (hardly robust), and you'll have to make some concession or another in order to handle text being overwritten.