From: t0m Date: Wed, 29 Apr 2009 20:28:10 +0000 (+0000) Subject: doc patch from amiri in #catalyst X-Git-Tag: 1.006009~80 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=977a9ca3ec206fc12dfae04f6466480423371b31;p=p5sagit%2Flocal-lib.git doc patch from amiri in #catalyst git-svn-id: http://dev.catalyst.perl.org/repos/bast/local-lib/1.000/trunk@6028 bd8105ee-0ff8-0310-8827-fb3f25b6796d --- diff --git a/Changes b/Changes index b16e1bc..988b7e0 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,8 @@ Revision history for local::lib + - Additional documentation and examples concerning having multiple + local::lib enviornments (amiri) + 1.003003 2009-04-09 - Expose the internals per RT #36846. - Fix the MANIFEST up a bit. diff --git a/lib/local/lib.pm b/lib/local/lib.pm index 160ff33..94ed490 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -368,6 +368,32 @@ You can also pass --boostrap=~/foo to get a different location - $ echo 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' >>~/.bashrc +If you want to install multiple Perl module environments, say for application evelopment, +install local::lib globally and then: + + $ cd ~/mydir1 + $ perl -Mlocal::lib=./ + $ eval $(perl -Mlocal::lib=./) ### To set the environment for this shell alone + $ printenv ### You will see that ~/mydir1 is in the PERL5LIB + $ perl -MCPAN -e install ... ### whatever modules you want + $ cd ../mydir2 + ... REPEAT ... + +For multiple environments for multiple apps you may need to include a modified version of +the C<< use FindBin >> instructions in the "In code" sample above. If you did something like +the above, you have a set of Perl modules at C<< ~/mydir1/lib >>. If you have a script at +C<< ~/mydir1/scripts/myscript.pl >>, you need to tell it where to find the modules you installed +for it at C<< ~/mydir1/lib>>. + +In C<< ~/mydir1/scripts/myscript.pl >>: + + use strict; + use warnings; + use local::lib "$FindBin::Bin/.."; ### points to ~/mydir1 and local::lib finds lib + use lib "$FindBin::Bin/../lib"; ### points to ~/mydir1/lib + +Put this before any BEGIN { ... } blocks that require the modules you installed. + =head1 DESCRIPTION This module provides a quick, convenient way of bootstrapping a user-local Perl