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.

Replies are listed 'Best First'.
Re^3: Splitting program into modules
by Anonymous Monk on Nov 13, 2018 at 05:13 UTC
    I hope you're not recommending 14,000 lines of main program in a single file!

    I prefer writing, and hacking on, single file programs. It's much easier than remembering which module contains what code that's performing some action from a distance. I like to keep as much code as possible in the main program file. That being said, I also use plenty of modules, impose sane order on the source to ease navigation, and document everything.