[Module::Build] Re: [PATCH] add Module::Build 0.27_08
Status: Beta
Brought to you by:
kwilliams
|
From: Randy W. S. <ml...@th...> - 2006-03-07 17:00:26
|
Dominic Dunlop wrote:
> On 2006–03–07, at 16:24, Yitzchak Scott-Thoennes wrote:
>
>> On Tue, Mar 07, 2006 at 06:38:13AM -0500, Randy W. Sims wrote:
>>
>>>
>>> Looks like the problem happens here:
>
> ...
>
>>> foreach my $perl ( $c->{perlpath},
>>> map File::Spec->catfile($_, $thisperl),
>>> File::Spec->path()
>>> ) {
>>> return $perl if -f $perl and $proto->_perl_is_same($perl);
>>> }
>>>
>>> Where we try to find the interpreter. It's falling all the way through
>>> and returning undef. Any idea where we're missing it here?
>>
>>
>> It should be finding it in $c->{perlpath}. Dominic, can you add a
>>
>> warn "checking in $_, \$^X is $^X, perl is $perl, -f \$perl is ",
>> -f $perl;
>
> ^^
> Um, the $_ that is the topic of the map() is out of scope at the top of
> the loop, and there doesn't seem to be another relevant one in scope.
> But, because I can't suggest anything better...
>
>>
>> at the beginning of the loop and a
>>
>> warn "not found"
>>
>> at the end?
>
>
> With your additions as suggested, I get
>
Ah, this is because we don't expect to be run from a non-installed perl.
Notice we pretty much throw $^X away if it's not absolute? Is there any
reason we can't add:
return $^X if $proto->_perl_is_same($^X);
at the top of find_perl_interpreter(). Or do we need to be more guarded?
Randy.
|