Yitzchak Scott-Thoennes wrote: > On Wed, Jan 26, 2005 at 02:00:57PM -0600, Ken Williams wrote: >>On Jan 25, 2005, at 3:26 PM, John Peacock wrote: >>>Jos I. Boumans wrote: >>>>I suppose if Module::Build::Base would say, at the top: >>>> $VERSION = $Module::Build::VERSION >>>>this would make EU::MM, M::IV, M::L::C and of course CPANPLUS::inc >>>>find a 'real' version declaration, rather than something evil that >>>>will blow away UNIVERSAL::VERSION. >>> >>>Yes, that would be an appropriate fix to M::B::Base. >> >>That won't work. All those tools evaluate the version line in >>isolation, not by loading the modules and checking the value of >>$VERSION. In other words, when Module::Build::Base's version is >>checked, Module::Build won't be loaded, so the version would be undef. > > $VERSION = do { require Module::Build; $Module::Build::VERSION }; IIRC, I've read some bit of docs that says that PAUSE (or possibly search.cpan.org) not only runs only that line of code, but runs it inside a Safe compartment, and possibly uses some other tricks, the exact nature of which is undocumented. It won't neccessarly be allowed to require anything, and if it is, Module::Build might not actually be there. Of course, it might not be a problem if PAUSE doesn't correctly see the version of Module::Build::Base, but all in all, it's probably best that there just be an ordinary scalar assignment there. (Possibly put there by automated means.) -=- James MastrosThread Previous | Thread Next