http://www.perlmonks.org?node_id=1225656


in reply to Re: Splitting program into modules
in thread Splitting program into modules

One program should be one file, unless the "parts" are truly going to be reused by other programs (which they usually are not)

I hope you're not recommending 14,000 lines of main program in a single file! On the contrary, I recommend keeping the main program file short, with most of the work done in (highly cohesive, loosely coupled) modules -- with documentation and a test suite around each module.

You can find many examples of this approach on the CPAN. For example, in Perl::Tidy and Perl::Critic, the perltidy and perlcritic main programs are not much more than one-liners, essentially just:

use Perl::Tidy; Perl::Tidy::perltidy();
and:
use Perl::Critic::Command qw< run >; run();
with all the work being done in (well-documented) modules with test suites around each module.