in reply to Re^2: How to properly use modules?
in thread How to properly use modules?

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?