Would it be an option to do something like:
$a="/my/module/path";
eval "use lib '$a'";
eval { use MyModule; }
I recall once using eval & use together to dynamically load specific modules when needed... This was before I knew about AUTOLOAD and SelfLoader and all... | [reply] [d/l] |
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. | [reply] [d/l] [select] |
Mmm... I just ran a test script and got a working version, but I can't get it to not display warning messages.
BEGIN {
my $a = "c:/";
use lib "$a";
}
use GetWords;
print new GetWords;
The warning message (without -w swicth or 'use warnings'):
Empty compile time value given to use lib at C:\Documents and Settings\mt2k\De
sktop\testing.pl line 3
-------------------------------------
eval reverse@{[lreP
=>q{ tsuJ\{qq},' rehtonA'
,q{\}rekcaH },' tnirp']}[1+1+
1,1-1,1+1,1*1,(1+1)*(1+1)];
-------------------------------------
| [reply] [d/l] |
my $somewhere;
BEGIN { $somewhere = q(/over/the/rainbow) }
use lib $somewhere;
Makeshifts last the longest. | [reply] [d/l] |
BEGIN {
my $a = "c:/";
BEGIN { require "$a"; import "$a"; }
}
Fun Fun Fun in the Fluffy Chair | [reply] [d/l] |