in reply to Clean code transition - how?

I'm not speaking from experience here, so "add salt to suit your taste"...

Based on your vague description, it sounds like the plan is for the new-generation parser to have the same API as the old one, so there is an existing code base using the old parser that (theoretically) shouldn't change at all as you change the parser.

If the old parser modules are in some specific directory, and the new replacement modules are in some other directory, you could try doing two runs over a given range of input data, and just twiddle $ENV{PERL5LIB} in order to control which set of modules is loaded. (And of course, you'll want the outputs stored separately as well.)

If the old modules are in the same directory as the code base that uses them (along with other modules that aren't being updated, which means you can't take "." out of @INC), you should be able to relocate the old modules to some other directory, and again twiddle $ENV{PERL5LIB} to run your contrasting tests.

(It's not something I've tried myself, but it seems plausible...)