diff options
Diffstat (limited to 'dist/ExtUtils-Install/t')
-rw-r--r-- | dist/ExtUtils-Install/t/lib/MakeMaker/Test/Utils.pm | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/dist/ExtUtils-Install/t/lib/MakeMaker/Test/Utils.pm b/dist/ExtUtils-Install/t/lib/MakeMaker/Test/Utils.pm index 7e5d5fc6cd..907ca9b07f 100644 --- a/dist/ExtUtils-Install/t/lib/MakeMaker/Test/Utils.pm +++ b/dist/ExtUtils-Install/t/lib/MakeMaker/Test/Utils.pm @@ -135,21 +135,30 @@ sub which_perl { perl_lib; Sets up environment variables so perl can find its libraries. +Run this before changing directories. =cut my $old5lib = $ENV{PERL5LIB}; my $had5lib = exists $ENV{PERL5LIB}; sub perl_lib { - # perl-src/t/ - my $lib = $ENV{PERL_CORE} ? qq{../lib} - # ExtUtils-MakeMaker/t/ - : qq{../blib/lib}; - $lib = File::Spec->rel2abs($lib); - my @libs = ($lib); - push @libs, $ENV{PERL5LIB} if exists $ENV{PERL5LIB}; - $ENV{PERL5LIB} = join($Config{path_sep}, @libs); - unshift @INC, $lib; + if ($ENV{PERL_CORE}) { + # Whilst we'll be running in perl-src/cpan/$distname/t/ + # instead of blib, our code will be copied with all the other code to + # the top-level library. + # $ENV{PERL5LIB} will be set with this, but (by default) it's a relative + # path. + $ENV{PERL5LIB} = join $Config{path_sep}, map { + File::Spec->rel2abs($_) } split $Config{path_sep}, $ENV{PERL5LIB}; + @INC = map { File::Spec->rel2abs($_) } @INC; + } else { + my $lib = 'blib/lib'; + $lib = File::Spec->rel2abs($lib); + my @libs = ($lib); + push @libs, $ENV{PERL5LIB} if exists $ENV{PERL5LIB}; + $ENV{PERL5LIB} = join($Config{path_sep}, @libs); + unshift @INC, $lib; + } } END { |