$Is_miniperl = $ENV{PERL_CORE_MINITEST};
$Is_BeOS = $^O eq 'beos';
-$PERL = ($Is_NetWare ? 'perl' :
- ($Is_MacOS || $Is_VMS) ? $^X :
- $Is_MSWin32 ? '.\perl' :
- './perl');
+$PERL = $ENV{PERL}
+ || ($Is_NetWare ? 'perl' :
+ ($Is_MacOS || $Is_VMS) ? $^X :
+ $Is_MSWin32 ? '.\perl' :
+ './perl');
eval '$ENV{"FOO"} = "hi there";'; # check that ENV is inited inside eval
# cmd.exe will echo 'variable=value' but 4nt will echo just the value
s{\\}{/}g;
ok((($Is_MSWin32 || $Is_os2) ? uc($_) eq uc($s1) : $_ eq $s1), " :$_:!=:$s1:");
$_ = `$perl $script`;
- s/\.exe//i if $Is_Dos or $Is_os2;
+ s/\.exe//i if $Is_Dos or $Is_os2 or $Is_Cygwin;
s{./$perl}{$perl} if $Is_BeOS; # revert BeOS execvp() side-effect
s{\\}{/}g;
ok((($Is_MSWin32 || $Is_os2) ? uc($_) eq uc($s1) : $_ eq $s1), " :$_:!=:$s1: after `$perl $script`");
if (!$Is_VMS) {
local @ISA;
local %ENV;
- eval { push @ISA, __PACKAGE__ };
+ # This used to be __PACKAGE__, but that causes recursive
+ # inheritance, which is detected earlier now and broke
+ # this test
+ eval { push @ISA, __FILE__ };
ok( $@ eq '', 'Push a constant on a magic array');
$@ and print "# $@";
eval { %ENV = (PATH => __PACKAGE__) };