http://www.perlmonks.org?node_id=92992


in reply to CPAN module and @INC

I unfortunatly do not know any methods to "permanently" change the @INC path, without recompiling Perl. Recompiling Perl always is an option though -- and if you are using some version of Linux, you could always use one of those prepackaged versions if you aren't in the mood to compile. If you choose to recompile, just check to make sure it's setting @INC paths properly at compile time (I believe it's a compile time option if I'm not mistaken).

Since CPAN insists on putting things in /usr/lib/perl5 on your box, it sounds like your Perl install is confused. First off, are you certain that you don't have any rogue versions of Perl living in /usr/bin? If so, that could certainly cause the problem you're seeing now.

However, assuming thats not the problem, and for some reason or another you don't really feel like recompiling everything, there are two fairly simple things you could do to remedy your problem:

  • The shell environment variable PERL5LIB acts just as @INC does.. or better said, it's like saying "use lib". Perl will search for modules in any directory listed in that variable, so you could set it for a particular user, or for the entire system in a login script.

  • Secondly, you could always symlink /usr/lib/perl5 to /usr/local/lib/perl5. In that case, anything CPAN installed would end up in your @INC every time. While it is a hack around another problem on your system, it would certaintly get you running quickly, and by all means there's nothing wrong with that.. it's just treating the symptom though, not the actual problem.
    -Eric