http://qs1969.pair.com?node_id=1155025


in reply to Re^2: Proper way to create packages and re-usable code?
in thread Proper way to create packages and re-usable code?

I understand that if the whole program was destined to be a 1 million line ERP system, the it would be worth re-organizing and rewriting everything to fit into modules. However I'm aiming at just splitting things into "two" files, and I'm 1 yard from the finish line. So cut/paste into 10 scripts may be the way to go.

No, copy/paste isn't the answer, thats like first week of intro to programming :)

modules are the answer, modules that are accompanied with tests, your code should live in modules :)

Maybe

foo.pl use BtApp; BtApp->runFoo; bar.pl use BtApp; BtApp->run( mode => 'Bar', @ARGV ); baz.pl use BtApp; BtApp->run( '--mode=Baz' , @ARGV ); btapp.pl use BtApp; BtApp->cli( @ARGV ); beep.pl use BtApp; BtApp->cli( beep => @ARGV ); ... BtApp.pm BtApp/Command/Baz.pm BtApp/Bar.pm BtApp/Beep.pm t/00-load.t t/command/baz.t t/bar.t t/baz.t t/beep.t ...

Something like that, draw a few outlines like that on a piece of paper, putting different stuff in different places, see what makes more sense

You can see all kinds of examples on cpan, see App::

https://metacpan.org/release/Module-Starter

tracker/App::TimeTracker

booklist/App::Booklist