reverse order of PERL_LOCAL_LIB_ROOT to match standard env order
Graham Knop [Fri, 4 Oct 2013 08:18:20 +0000 (04:18 -0400)]
lib/local/lib.pm
t/bad_variables.t
t/stackable.t

index 7947bc2..38ebcb5 100644 (file)
@@ -218,7 +218,7 @@ sub setup_local_lib_for {
   $path = Win32::GetShortPathName($path) if $^O eq 'MSWin32';
 
   if (! $deactivating) {
-    if (@active_lls && $active_lls[-1] eq $path) {
+    if (@active_lls && $active_lls[0] eq $path) {
       exit 0 if $0 eq '-';
       return; # Asked to add what's already at the top of the stack
     } elsif (grep { $_ eq $path} @active_lls) {
@@ -421,8 +421,8 @@ sub build_activate_environment_vars_for {
     PERL_LOCAL_LIB_ROOT =>
             _env_list_value(
               { interpolate => $interpolate, exists => 0, empty => '' },
-              \'PERL_LOCAL_LIB_ROOT',
               $path,
+              \'PERL_LOCAL_LIB_ROOT',
             ),
     PERL_MB_OPT => "--install_base " . _mb_escape_path($path),
     PERL_MM_OPT => "INSTALL_BASE=" . _mm_escape_path($path),
@@ -511,8 +511,8 @@ sub build_deactivate_environment_vars_for {
 
   # If removing ourselves from the "top of the stack", set install paths to
   # correspond with the new top of stack.
-  if ($active_lls[-1] eq $path) {
-    my $new_top = $active_lls[-2];
+  if ($active_lls[0] eq $path) {
+    my $new_top = $active_lls[1];
     $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;
   }
index 5321bb7..f18a6a7 100644 (file)
@@ -20,13 +20,13 @@ local::lib->import($dir1);
 local::lib->import($dir2);
 
 # we have junk in here now
-$ENV{PERL_LOCAL_LIB_ROOT} .= $Config{path_sep} . $dir3;
+$ENV{PERL_LOCAL_LIB_ROOT} = $dir3 . $Config{path_sep} . $ENV{PERL_LOCAL_LIB_ROOT};
 
 local::lib->import($dir1);
 
 is(
     $ENV{PERL_LOCAL_LIB_ROOT},
-    join($Config{path_sep}, (grep { defined $_ and $_ ne '' } $dir2, $dir1)),
+    join($Config{path_sep}, (grep { defined $_ and $_ ne '' } $dir1, $dir2)),
     'dir1 should have been removed and added back in at the top'
 );
 
index c73d7f3..e57d9ce 100644 (file)
@@ -46,7 +46,7 @@ like $ENV{PERL_MM_OPT}, qr/\Q$dir2_escape/, 'second path is installation target'
 local::lib->import($dir1);
 my @active = local::lib->active_paths;
 is @active, $prev_active + 2, 'still two active dirs after re-adding first';
-is $active[-1], $dir1, 'first dir was re-added on top';
+is $active[0], $dir1, 'first dir was re-added on top';
 like $ENV{PERL_MM_OPT}, qr/\Q$dir1_escape/, 'first path is installation target again';
 
 local::lib->import('--deactivate', $dir2);