I'm developing a script on a box where I can't install modules. No problem, I just create a local libdir and add
That's classic.#!/usr/bin/perl -w use lib qw(libdir);
Now this inserts the path libdir in front of @INC, which means that my local library will be ALWAYS used, regardless of the availability of the same module in the regular @INC paths.
This is not wat I want; I want to provide the local library only in case a global installed library is missing.
Now I was thinking about a solution where I require this specific module in an eval block instead of use-ing it, catch errors and require my local version if needed.
However, this is more complicated and I don't get the benefit of compile-time checking of the used module.eval { require Test::Simple; }; if ($@) { eval { use lib qw(libdir); }; } eval { require Test::Simple; }; die $@ if $@;
Is there a better solution?
--
Cheers, Joe
In reply to "use lib" with low precedence? by joe++
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |