Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re^4: modify @INC

by Aristotle (Chancellor)
on Jan 17, 2003 at 01:42 UTC ( #227585=note: print w/replies, xml ) Need Help??

in reply to Re: Re^2: modify @INC
in thread modify @INC

No, that won't work. The use inside the eval BLOCK is compiled at compile time, but the string in eval EXPR is not. eval "use Foo"; is nothing but an obfuscated way to say require Foo; Foo->import;

Neither case is a job for eval here. If you want variable paths at compile time, you do the following:

my $libpath; BEGIN { $libpath = "/foo/bar"; } use lib $libpath;
If you want to load modules with dynamic @INC at runtime, you make use of the aforemention construct:
{ local @INC = ("/foo/bar", @INC); require Foo; Foo->import; }
eval will not help. And $a is a really awful name for a variable (plus $a and $b are reserved for sort). :)

Makeshifts last the longest.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2022-12-01 14:13 GMT
Find Nodes?
    Voting Booth?