Yes repeating is not good, indeed. I just wanted to do some tests with Test::More module and got into a problem, my module is too small and do not cover everything I'd like to test, because most of important subroutines are in the .pl files, how to write tests for those - dunno...
Turn each (or all) .pl into a distribution with scriptdist, remove (rm -rfv t) the stock test templates and add new ones with Test::XT and Test::Script
Once you got this in version control (git), write real tests for each program with Test::Script::Run
Once you got a complete/comprehensive test suite for each program, try refactoring, say by making
modulinos , and making your code skimmable code