[EMAIL PROTECTED] (Nick Ing-Simmons) wrote:
>Ken Williams <[EMAIL PROTECTED]> writes:
>>2) Most of the initialization code takes place when you 'use
>>ExtUtils::MakeMaker', not during the new() method.  This means that
>>the initialization data is stored in global variables, rather than as
>>object member data.  This in turn makes it very difficult to subclass
>>MakeMaker.  
>
>Sub-classing is common - but one sub-classes not MakeMaker but MM_xxxx.

This is difficult to do in practice, because MakeMaker figures out which
MM_xxx module to load, and you can't make it load a different one unless
you change MakeMaker.

>>I would like to try reorganizing this code a bit, and I
>>hereby solicit abuse for it. ;-)  If nothing else, I can make accessor
>>methods on the class data.
>>
>>3) I'm curious about why only some MakeMaker methods are overridable in
>>the MY:: package, and the rest aren't.  
>
>MY:: overides ExtUtils::MM_Unix not  ExtUtils::MakeMaker.

Unless I've misunderstood something, MY overrides MM, which overrides
all of ExtUtils::MM_xxx, ExtUtils::MM_Unix, and ExtUtils::MakeMaker.  So
MakeMaker is a parent class of MY.

The problem is that no objects of the MY class are ever created -
instead, the overridable subroutines are manually copied from MY into
PACK001, etc., so the inheritance from MY to MakeMaker is never actually
used.


  -------------------                            -------------------
  Ken Williams                             Last Bastion of Euclidity
  [EMAIL PROTECTED]                            The Math Forum

Reply via email to