Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^3: Proper way to create packages and re-usable code?

by Anonymous Monk
on Feb 12, 2016 at 01:07 UTC ( [id://1155025]=note: print w/replies, xml ) Need Help??


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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1155025]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2024-04-18 02:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found