With abstractions :)
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
See also writing tests on modules, What is the best way to add tests to existing code?