Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: "use"ing from dynamic namespace

by samtregar (Abbot)
on Dec 01, 2008 at 17:43 UTC ( [id://727164]=note: print w/replies, xml ) Need Help??


in reply to "use"ing from dynamic namespace

Maybe not important to you, but that won't work if your client code needs both Foo::Module and Bar::Module. The BEGIN block will only be run once. (And the code you posted doesn't work period since __PACKAGE__ is "Base::Module" in this case, not Foo::Module or Bar::Module!)

Instead I think I'd have the base class define an init() method which the sub-classes call in a BEGIN:

   BEGIN { __PACKAGE__->init() }

The code in init() could do roughly what you have in your BEGIN block, but I might make it a bit more configurable by using a method to get the config class name and defining that in each sub-class:

   sub config_class { "Foo::Config" }

You could have a default implementation of that method in your base class that does the namespace manipulation.

Does that make sense?

-sam

Replies are listed 'Best First'.
Re^2: "use"ing from dynamic namespace
by dsheroh (Monsignor) on Dec 01, 2008 at 18:42 UTC
    (And the code you posted doesn't work period since __PACKAGE__ is "Base::Module" in this case, not Foo::Module or Bar::Module!)

    Oops... Guess that makes it obvious that I hadn't actually tested this yet other than with the Base version...

    Does that make sense?

    Yep!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (6)
As of 2024-04-16 05:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found