I just started getting onto the one-perl-per-app train. By default,
Configure wants to set up an installation with a deeply nested directory layout so as much as possible can be shared across installs. I don’t care about that – having completely separate installs is quite affordable these days. So all that hierarchy is merely annoying and serves no useful purpose, and I would prefer to simply have all modules in
./lib and all XS components in
./archlib below the root directory of the installation, without any further nesting for different Perl versions, system architectures and packaging authorities.
But figuring out exactly how to get Perl’s
Configure to give me I want took almost two hours of fiddling and research (and the final hint came from a rather tangential archived mailing list post).
So I thought I would jot the recipe down here:
PREFIX=$HOME/perl/5.10.0 # pick any root directory you like
sh Configure -des \
The maddening part was to figure out that
inc_version_list must be
none, otherwise the
sitelib settings will be ignored and
Configure will generate the default deeply nested layout for them.
I have to say that Perl requires rather a lot of work to beat it into submission to my preferences…