develooper Front page | perl.perl5.porters | Postings from January 2005

Re: [Module::Build] Re: [perl #33927] [BUG] Coredump in 5.9.2 whenevalling a certain string while in a coderf in @INC

Thread Previous | Thread Next
David A. Golden
January 26, 2005 07:22
Re: [Module::Build] Re: [perl #33927] [BUG] Coredump in 5.9.2 whenevalling a certain string while in a coderf in @INC
Message ID:
My apologies for this comment from the peanut gallery thrown into the 
middle of a serious discussion, but I found the assumption in John's 
statement a little surprising:

John Peacock wrote:
> Yes, that would be an appropriate fix to M::B::Base.  Every module 
> /should/ have a $VERSION assignment, even if it inherits it from the 
> "master" module in the family.  It's just bad luck for you that the 
> module doesn't have a $VERSION assignment _and_ that the way that Ken 
> tried to protect M::B from included something which "looked" 
> like a $VERSION assignment.

I asked a question about the latest thinking on version numbers in 
modules on perlmonks and got a tremendously wide range of answers -- and 
certainly no consensus that all modules need a VERSION.  In fact, 
several people went the opposite route, leaving just a single VERSION 
for the master module so that the distribution version is built 
correctly and leaving all other modules VERSION-less.

CPAN seems not to care if there's a version -- pulling from the suffix 
on the distribution tarfile, right (or maybe using a META file)?  So 
this is all just so that M::B and EU::MM can get a distribution version 
number from a file without actual requiring the file and look at the 
value of $VERSION directly (since the file may or may not compile in the 
first place).

Thus it seems odd to say that every module must have a VERSION simply 
because the tools that manage distributions do text-searches for them 
and might get confused.  That doesn't strike me as very perlish. 
Rather, assume that modules may or may not have a VERSION, and just let 
the modules like M::B be careful that their use of the phrase VERSION 
doesn't cause confusion.

The suggestion that M::B::Base simply define version seems like an easy 
solution.  It doesn't even need to be $VERSION=$Module::Build::VERSION 
-- it could be anything so long as it's early enough in the file that 
other tools find it and stop searching.

David Golden

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About