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

kiz has asked for the wisdom of the Perl Monks concerning the following question:

I am happy installing modules locally, for a given user (or service) - for example, installing CPAN modules under /home/services/foo/perl5

I'm happy that this makes a tree of directories, for packages which compile OS-Specific code, or packages which compile location-specific code.... but I'd like enlightened on two things:

  1. What is the rational for the proliferation of directories:
    • /home/services/foo/perl5/lib/<perl-version>
    • /home/services/foo/perl5/lib/<perl-version>/<OS>
    • /home/services/foo/perl5/lib/site_perl/<perl-version>
    • /home/services/foo/perl5/lib/site_perl/<perl-version>/<OS>
    • /home/services/foo/perl5/lib/site_perl/lib/<perl-version>
    • /home/services/foo/perl5/lib/site_perl/lib/<perl-version>/<OS>
    • /home/services/foo/perl5/lib/site_perl/lib/site_code
  2. .. and why do I need to specify all of them in PERL5LIB?
    • Why can't Perl expand /home/services/foo/perl5/lib/ as it does for the default library path?
    • Is there a magic subset that auto-magically includes subdirectories?


-- Ian Stuart
A man depriving some poor village, somewhere, of a first-class idiot.