As part of answering a MakeMaker ticket I wrote out a fairly solid explanation of what the three different install locations mean for CPAN modules.
> (Personally I've always found the perl/site/vendor distinction and the
> triplicated set of directories to be fairly impenetrable
> that only 1 of the 3 at various times did something like I thought I
Part of the problem is the whole philosophy is never fully explained. Part of it is that until 5.12 the default look up order is wrong.
Its pretty simple. Think of it like MacPorts or fink which doesn't control the entire operating system. You effectively have three managers working at the same time. You have the user installing things by hand. You have the package manager. And then there's the operating system.
In a flat layout they'll stomp all over each other. You might install an upgraded program from MacPorts and then have the next OS upgrade downgrade it again. The user might install the latest version from a tarball and then MacPorts installs an older version on top of it next upgrade.
"site" is what gets installed by the user, like
"vendor" is what gets installed by the package manager.
"core" is what originally shipped with the operating system (or in Perl's case with Perl itself), like
You look in
Packagers should be setting INSTALLDIRS=vendor. The CPAN shell should be using INSTALLDIRS=site. Nothing should be using perl/core. The broken lookup order complicates this because upgrades to dual-life CPAN modules have to go into core else they're not found, but Debian users don't have to worry about that.