don't output env vars that are already set
[p5sagit/local-lib.git] / lib / local / lib.pm
index 78229ad..40fcf68 100644 (file)
@@ -241,9 +241,11 @@ sub activate {
 }
 
 sub _legacy {
-  my ($self, $path, $deactivating) = @_;
+  my ($self, $path) = @_;
   $self = $self->new unless ref $self;
-  $self = $self->${\($deactivating ? 'deactivate' : 'activate')}($path) if defined $path;
+  if (defined $path) {
+    $self = $self->activate($path);
+  }
   $self;
 }
 
@@ -303,6 +305,10 @@ sub environment_vars_string_for {
         && ${$value->[0]} eq $name) {
       next;
     }
+    if (!ref $value
+        && $value eq $ENV{$name}) {
+      next;
+    }
     $out .= $self->$build_method($name, $value);
   }
   return $out;