Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: require $package?

by andreychek (Parson)
on Oct 17, 2001 at 04:24 UTC ( #119295=note: print w/ replies, xml ) Need Help??

in reply to require $package?

I just ran into that last night. All you need to do is put the require statement within your eval in quotes.

eval{ "require $_" };
Hopefully, someone will be kind enough to explain why this is necessary :-)
<br< Have fun!

Comment on Re: require $package?
Download Code
Replies are listed 'Best First'.
Re (tilly) 2: require $package?
by tilly (Archbishop) on Oct 17, 2001 at 05:01 UTC
    It is not necessary, however if you don't do it, Perl won't go as far out of its way to be DWIM.

    That may require some explanation.

    If you read the documentation for perldoc you will find that you are supposed to require a filename. For instance:

    require "RPG/Item/Weapon/";
    However as a special exemption, if you pass it a package name as a bare word, it will figure out what the filename should be for you.
    require RPG::Item::Weapon::Spear; # Same as above
    To get the auto package to filename conversion, the package must be named as a bareword.

    Therefore your eval trick got the bareword in there. Or you could convert the package that you want into the filename before loading. Either works (the second is safer though if the package comes from user input). But if you pass it an actual string that is the name of a package, Perl has no way to know that that isn't the filename desired and so doesn't do the conversion.

    Does that make sense?

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2015-12-01 06:51 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (795 votes), past polls