Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: use module if condition is met

by cfreak (Chaplain)
on Jan 23, 2004 at 17:12 UTC ( #323613=note: print w/replies, xml ) Need Help??

in reply to use module if condition is met

use requires code in at compile time so what you have really won't work. Your could use require which will do it at run-time but is slower. The best approach I've seen (believe this is in the Camel Book) is to use a BEGIN block in combination with eval. However that is going to only test if the module is installed, I don't believe variables such as your $type would be initialized yet (I could be wrong on that one)

Then of course you have the problem with your subs. You could create an AUTOLOAD in your modules that would capture any calls to subs that didn't exist and return some kind of flag to that affect.

Honestly though I think all that is really more work that you want. I think requireing the modules is going to be slower than just useing all the ones you may need even if you don't make calls to all of them. Then you don't have to worry about undefined subs either.

Lobster Aliens Are attacking the world!

Replies are listed 'Best First'.
Re: Re: use module if condition is met
by perrin (Chancellor) on Jan 23, 2004 at 17:46 UTC
    Not that it really matters, but require is not slower than use. If anything, it would be faster, since it does less.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://323613]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2018-06-24 21:22 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.