On Mon, Mar 14, 2005 at 10:28:12AM -0800, David Wheeler wrote:
> On Mar 14, 2005, at 10:10 AM, _brian_d_foy wrote:
>
> >>Can't locate object method "curdir" via package "ExtUtils::MM_Unix" at
> >>/usr/local/lib/perl5/5.8.5/ExtUtils/MM_Unix.pm line 99.
> >
> >I don't think this one is my fault. Any idea what's going on there?
My only thought would be you have some wacko version of File::Spec which
doesn't have curdir, but this...
> % perl -MExtUtils::MM_Unix -le 'print ExtUtils::MM_Unix->curdir'
> .
Disproves that. Well, maybe not. Try:
perl -MExtUtils::MakeMaker -le 'print ExtUtils::MM_Unix->curdir'
> Looks like it can find it. Could ExtUtils::MM_Unix not be getting
> loaded somehow?
Seeing as how the error is coming from inside MM_Unix, no.
It is possible there's some sort of circular load dependency here so that
MM_Unix gets loaded before its parent MM_Any finishes loading. Try sticking
a BEGIN block around the @ISA lines in both MM_Any and MM_Unix.
PS brian, your Test::Manifest test_via_harness magic is brittle.
Rather than replacing it you can simply use inheritence.
unless( $@ ) {
pacakge MY;
*test_via_harness = sub {
...
};
}
Placing methods into MY is the stamped and approved way of overriding
MakeMaker methods. This will also allow it to work with older versions of
Makemaker which predate ExtUtils::MM_Any.