From: Jarkko Hietaniemi Date: Fri, 7 Dec 2001 22:21:25 +0000 (+0000) Subject: which_perl: delay as much a possible till runtime. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=17a740d51341832c6dd611e5bea020e58a1c5a93;p=p5sagit%2Fp5-mst-13.2.git which_perl: delay as much a possible till runtime. p4raw-id: //depot/perl@13525 --- diff --git a/t/test.pl b/t/test.pl index 223a197..c276fb3 100644 --- a/t/test.pl +++ b/t/test.pl @@ -270,44 +270,39 @@ sub display { # A somewhat safer version of the sometimes wrong $^X. -BEGIN: { - my $exe; - eval { - require Config; - Config->import; - }; - if ($@) { - warn "test.pl had problems loading Config: $@"; - $exe = ''; - } else { - $exe = $Config{_exe}; - } - - my $Perl = $^X; - - # This doesn't absolutize the path: beware of future chdirs(). - # We could do File::Spec->abs2rel() but that does getcwd()s, - # which is a bit heavyweight to do here. - - if ($Perl =~ /^perl\Q$exe\E$/i) { - eval { - require File::Spec; - }; +my $Perl; +sub which_perl { + unless (defined $Perl) { + $Perl = $^X; + + my $exe; + eval "require Config; Config->import"; if ($@) { - warn "test.pl had problems loading File::Spec: $@"; + warn "test.pl had problems loading Config: $@"; + $exe = ''; } else { - $Perl = File::Spec->catfile(File::Spec->curdir(), "perl$exe"); + $exe = $Config{_exe}; } + + # This doesn't absolutize the path: beware of future chdirs(). + # We could do File::Spec->abs2rel() but that does getcwd()s, + # which is a bit heavyweight to do here. + + if ($Perl =~ /^perl\Q$exe\E$/i) { + eval "require File::Spec"; + if ($@) { + warn "test.pl had problems loading File::Spec: $@"; + } else { + $Perl = File::Spec->catfile(File::Spec->curdir(), "perl$exe"); + } + } + + warn "which_perl: cannot find perl from $^X" unless -f $Perl; + + # For subcommands to use. + $ENV{PERLEXE} = $Perl; } - - warn "Can't generate which_perl from $^X" unless -f $Perl; - - # For subcommands to use. - $ENV{PERLEXE} = $Perl; - - sub which_perl { - return $Perl; - } + return $Perl; } 1;