diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-12-07 22:21:25 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-12-07 22:21:25 +0000 |
commit | 17a740d51341832c6dd611e5bea020e58a1c5a93 (patch) | |
tree | aef5c9011bca7b8223af7372eb5bd702eb382e3e /t/test.pl | |
parent | 85363d302da4cf6b10bf67ebe8976ce196d0a5ad (diff) | |
download | perl-17a740d51341832c6dd611e5bea020e58a1c5a93.tar.gz |
which_perl: delay as much a possible till runtime.
p4raw-id: //depot/perl@13525
Diffstat (limited to 't/test.pl')
-rw-r--r-- | t/test.pl | 63 |
1 files changed, 29 insertions, 34 deletions
@@ -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; |