use File::Spec ();
use Config;
-our $VERSION = '1.008026'; # 1.8.26
+our $VERSION = '2.000_000'; # 2.0.0
$VERSION = eval $VERSION;
sub import {
export PERL5LIB="/home/username/perl5/lib/perl5"
export PATH="/home/username/perl5/bin:$PATH"
+From a .bashrc file -
+
+ [ $SHLVL -eq 1 ] && eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"
+
=head2 The bootstrapping technique
A typical way to install local::lib is using what is known as the
any other Bourne shells, you can add this to your shell startup script this
way:
- echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
+ echo '[ $SHLVL -eq 1 ] && eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"' >>~/.bashrc
If you are using C shell, you can do this as follows:
give that as import parameter to the call of the local::lib module like this
way:
- echo 'eval "$(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)"' >>~/.bashrc
+ echo '[ $SHLVL -eq 1 ] && eval "$(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)"' >>~/.bashrc
After writing your shell configuration file, be sure to re-read it to get the
changed settings into your current shell's environment. Bourne shells use
cd ../mydir2
... REPEAT ...
+When used in a C<.bashrc> file, it is recommended that you protect against
+re-activating a directory in a sub-shell. This can be done by checking the
+C<$SHLVL> variable as shown in synopsis. Without this, sub-shells created by
+the user or other programs will override changes made to the parent shell's
+environment.
+
If you are working with several C<local::lib> environments, you may want to
remove some of them from the current environment without disturbing the others.
You can deactivate one environment like this (using bourne sh):
=head3 PowerShell
-local::lib also supports PowerShell, and an be used with the
+local::lib also supports PowerShell, and can be used with the
C<Invoke-Expression> cmdlet.
Invoke-Expression "$(perl -Mlocal::lib)"
Patch for Carp version mismatch contributed by Hakim Cassimally
<osfameron@cpan.org>.
+Rewrite of internals and numerous bug fixes and added features contributed by
+Graham Knop <haarg@haarg.org>.
+
=head1 COPYRIGHT
-Copyright (c) 2007 - 2010 the local::lib L</AUTHOR> and L</CONTRIBUTORS> as
+Copyright (c) 2007 - 2013 the local::lib L</AUTHOR> and L</CONTRIBUTORS> as
listed above.
=head1 LICENSE