Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Setting up helper objects in App::Cmd

by McA (Priest)
on Sep 25, 2012 at 10:06 UTC ( #995520=perlquestion: print w/replies, xml ) Need Help??
McA has asked for the wisdom of the Perl Monks concerning the following question:

Hi all!

Another question to App::Cmd:

Where is the right place to set up helper objects that are accessible to all commands like loggers or database handles?

Best regards

Replies are listed 'Best First'.
Re: Setting up helper objects in App::Cmd
by tobyink (Abbot) on Sep 25, 2012 at 10:21 UTC

    I'd generally name my modules things like:

    • MyApp::Command::Foo
    • MyApp::Command::Bar
    • MyApp::Lib::Foobar
    • MyApp::Lib::Database

    And instead of loading library modules at compile time with use MyApp::Lib::Database, defer loading to run-time (with require MyApp::Lib::Database) inside your command's execute method. This means that you can avoid loading up database connections, etc when the user is just running, say, myapp help. Load them only once they're needed.

    PS: a release using this technique is P5U.

    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

      Hi Tobyink!

      Once again thank you for your reply. A ++ for that.

      When I need to do some module initialization for EVERY command. Is there a place/method to do so? Especially when I do initialization work based on the global options. I don't like the idea of doing the same thing, like

      require SomeLib; SomeLib->init();
      in every command's execute method.

      Best regards

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://995520]
Approved by chacham
[Discipulus]: too much guns in schools? throw more gun at schools! professors in arms
LanX thinks teachers nowadays need every possible mean to defend against their annoying students.

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2018-02-23 11:35 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (302 votes). Check out past polls.