X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Flocal%2Flib.pm;h=2971fee01c3a75587fc20981c4417c88c65a8e1c;hb=393c618de8cd43901ba63b8529bfd5db23151b73;hp=ee0bbd3bf027b02f8c75ec6c3bcf1917a3d50776;hpb=4de8082430a08b7365387abd7d42830d53dac659;p=p5sagit%2Flocal-lib.git diff --git a/lib/local/lib.pm b/lib/local/lib.pm index ee0bbd3..2971fee 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -11,7 +11,7 @@ use File::Path (); use Carp (); use Config; -our $VERSION = '1.007000'; # 1.7.0 +our $VERSION = '1.008001'; # 1.8.1 our @KNOWN_FLAGS = qw(--self-contained); @@ -267,6 +267,11 @@ sub guess_shelltype { sub print_environment_vars_for { my ($class, $path) = @_; + print $class->environment_vars_string_for($path); +} + +sub environment_vars_string_for { + my ($class, $path) = @_; my @envs = $class->build_environment_vars_for($path, LITERAL_ENV); my $out = ''; @@ -283,7 +288,7 @@ sub print_environment_vars_for { $value =~ s/(\\")/\\$1/g; $out .= $class->${\"build_${shelltype}_env_declaration"}($name, $value); } - print $out; + return $out; } # simple routines that take two arguments: an %ENV key and a value. return @@ -316,7 +321,15 @@ sub setup_env_hash_for { sub build_environment_vars_for { my ($class, $path, $interpolate) = @_; return ( - PERL_LOCAL_LIB_ROOT => $path, + PERL_LOCAL_LIB_ROOT => join($Config{path_sep}, + (($ENV{PERL_LOCAL_LIB_ROOT}||()) ? + ($interpolate == INTERPOLATE_ENV + ? ($ENV{PERL_LOCAL_LIB_ROOT}||()) + : (($^O ne 'MSWin32') ? '$PERL_LOCAL_LIB_ROOT' + : '%PERL_LOCAL_LIB_ROOT%' )) + : ()), + $path + ), PERL_MB_OPT => "--install_base ${path}", PERL_MM_OPT => "INSTALL_BASE=${path}", PERL5LIB => join($Config{path_sep},