X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Flocal%2Flib.pm;h=9ac0a7571c8f41a89b96544a8f54de8129f11c27;hb=93b577b582750b1e84d1bfaf916e2d0f5ef9d0ba;hp=24cab90158fc66f76a324279ecb7f037b3e12a60;hpb=24351831cd9bba6bc993566324483b05bbd5d52c;p=p5sagit%2Flocal-lib.git diff --git a/lib/local/lib.pm b/lib/local/lib.pm index 24cab90..9ac0a75 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -10,7 +10,8 @@ use File::Spec (); use File::Path (); use Config; -our $VERSION = '1.008011'; # 1.8.11 +our $VERSION = '1.008023'; # 1.8.23 +$VERSION = eval $VERSION; our @KNOWN_FLAGS = qw(--self-contained --deactivate --deactivate-all); @@ -423,8 +424,8 @@ sub build_activate_environment_vars_for { \'PERL_LOCAL_LIB_ROOT', $path, ), - PERL_MB_OPT => "--install_base ${path}", - PERL_MM_OPT => "INSTALL_BASE=${path}", + PERL_MB_OPT => "--install_base " . _mb_escape_path($path), + PERL_MM_OPT => "INSTALL_BASE=" . _mm_escape_path($path), PERL5LIB => _env_list_value( { interpolate => $interpolate, exists => 0, empty => '' }, @@ -439,6 +440,21 @@ sub build_activate_environment_vars_for { ) } +sub _mm_escape_path { + my $path = shift; + $path =~ s/\\/\\\\\\\\/g; + if ($path =~ s/ /\\ /g) { + $path = qq{"\\"$path\\""}; + } + return $path; +} + +sub _mb_escape_path { + my $path = shift; + $path =~ s/\\/\\\\/g; + return qq{"$path"}; +} + sub active_paths { my ($class) = @_; @@ -497,8 +513,8 @@ sub build_deactivate_environment_vars_for { # correspond with the new top of stack. if ($active_lls[-1] eq $path) { my $new_top = $active_lls[-2]; - $env{PERL_MB_OPT} = defined($new_top) ? "--install_base ${new_top}" : undef; - $env{PERL_MM_OPT} = defined($new_top) ? "INSTALL_BASE=${new_top}" : undef; + $env{PERL_MB_OPT} = defined($new_top) ? "--install_base "._mb_escape_path($new_top) : undef; + $env{PERL_MM_OPT} = defined($new_top) ? "INSTALL_BASE="._mm_escape_path($new_top) : undef; } return %env; @@ -593,7 +609,7 @@ A typical way to install local::lib is using what is known as the hasn't already installed local::lib. In this case, you'll need to install local::lib in your home directory. -If you do have administrative privileges, you will still want to set up your +Even if you do have administrative privileges, you will still want to set up your environment variables, as discussed in step 4. Without this, you would still install the modules into the system CPAN installation and also your Perl scripts will not use the lib/ path you bootstrapped with local::lib. @@ -1105,8 +1121,8 @@ listed above. =head1 LICENSE -This library is free software and may be distributed under the same terms -as perl itself. +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. =cut