[Bast-commits] r6687 - in local-lib/1.000/trunk: . lib/local
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Mon Jun 15 23:51:01 GMT 2009
Author: t0m
Date: 2009-06-15 23:51:01 +0000 (Mon, 15 Jun 2009)
New Revision: 6687
Modified:
local-lib/1.000/trunk/Changes
local-lib/1.000/trunk/lib/local/lib.pm
Log:
Slightly cleanup @INC vs PERL5LIB handling in --self-contained, and fix duplicate code from merge
Modified: local-lib/1.000/trunk/Changes
===================================================================
--- local-lib/1.000/trunk/Changes 2009-06-15 23:19:05 UTC (rev 6686)
+++ local-lib/1.000/trunk/Changes 2009-06-15 23:51:01 UTC (rev 6687)
@@ -1,7 +1,12 @@
Revision history for local::lib
+ - Set PERL5LIB back to calculated @INC with --self-contained, to stop
+ invoking other perl scripts from losing the local::lib if they
+ mangle @INC from $ENV{PERL5LIB} (t0m)
+
1.004002 2009-06-15
- - Fixed up INC untaint procedure to skip/ignore CODE, ARRAY, blessed entries.
+ - Fixed up INC untaint procedure to skip/ignore CODE, ARRAY,
+ blessed entries. (grink)
- Include test in xt/ for the above
- Put PERL5LIB first, so it'll be favored over privlibexp and
Modified: local-lib/1.000/trunk/lib/local/lib.pm
===================================================================
--- local-lib/1.000/trunk/lib/local/lib.pm 2009-06-15 23:19:05 UTC (rev 6686)
+++ local-lib/1.000/trunk/lib/local/lib.pm 2009-06-15 23:51:01 UTC (rev 6687)
@@ -41,8 +41,8 @@
if ($flag eq '--self-contained') {
# The only directories that remain are those that we just defined and those where core modules are stored.
# We put PERL5LIB first, so it'll be favored over privlibexp and archlibexp
- @INC = ($Config::Config{privlibexp}, $Config::Config{archlibexp}, split $Config{path_sep}, $ENV{PERL5LIB});
- @INC = (
+ my %seen;
+ @INC = grep { ! $seen{$_}++ } (
$class->install_base_perl_path($path),
$class->install_base_arch_path($path),
split( $Config{path_sep}, $perl5lib ),
@@ -50,8 +50,9 @@
$Config::Config{archlibexp}
);
- # We explicitly set PERL5LIB here (back to what it was originally) to prevent @INC from growing with each invocation
- $ENV{PERL5LIB} = $perl5lib;
+ # We explicitly set PERL5LIB here to the above de-duped list to prevent
+ # @INC from growing with each invocation
+ $ENV{PERL5LIB} = join( $Config{path_sep}, @INC );
}
elsif (defined $flag) {
die "unrecognized import argument: $flag";
More information about the Bast-commits
mailing list