actually, this documentation has never helped me. i just didn't get the difference
of the two parameters.
a couple of years ago, when I had the problem to install an application onto the
customers machine and the dependant modules (packaged with the application) into
a certain directory nobody in c.l.p.m could really help me, and the MakeMaker docs didn't either. I only used the PREFIX parameter and was wondering how to predict in which
directories the modules would end up (as this changed also between perl versions).
I happened to stumble over a website where Makefile.PL was called additionally
with the LIB parameter (I don't remember where I found this). I tried it, and it
just worked. Foo::Bar ended up reliably in prefix/Foo/Bar.pm, so that I knew
that I could just say use lib qw(prefix);
But why?
So I think the docs are not really easy to understand. It says for PREFIX=~:
This will install all files in the module under your home directory, with man pages and libraries going into an appropriate place (usually ~/man and ~/lib).
and for LIB=~/lib:
This will install the module's architecture-independent files into ~/lib, the architecture-dependent files into ~/lib/$archname.
What exactly is the difference between "all files in the module" and "the module's architecture-independent files"? (Note that also using PREFIX will use a
different directory for architecture dependant files.) If you read the documentation
for LIB, you don't know why you still have to use PREFIX.
I think a part of the confusion is caused by the fact that both parameters
can contradict each other (saying PREFIX=/foo/bar LIB=/foo/baz) |