joe++ has asked for the wisdom of the Perl Monks concerning the following question:
Monks,
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
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: "use lib" with low precedence?
by Abigail-II (Bishop) on Oct 07, 2002 at 12:28 UTC | |
by jordanh (Chaplain) on Oct 07, 2002 at 13:25 UTC | |
Re: "use lib" with low precedence?
by PodMaster (Abbot) on Oct 07, 2002 at 12:14 UTC | |
by joe++ (Friar) on Oct 07, 2002 at 12:17 UTC | |
Re: "use lib" with low precedence?
by broquaint (Abbot) on Oct 07, 2002 at 12:16 UTC | |
Re: "use lib" with low precedence?
by belg4mit (Prior) on Oct 07, 2002 at 16:17 UTC | |
Re: "use lib" with low precedence?
by shahzbot (Novice) on Oct 07, 2002 at 22:49 UTC |
Back to
Seekers of Perl Wisdom