>>>>> On Fri, 16 Nov 2007 12:49:44 -0800, Michael G Schwern <[EMAIL PROTECTED]> 
>>>>> said:

  > A bug in MakeMaker's parse_version() was found recently.  Module::Build has
  > the same bug.
  > https://rt.cpan.org/Ticket/Display.html?id=30747

  > It's reproducible by getting the version from a module like this:

  > $VERSION = 1.23;  sub version { $VERSION }

  > and then this:

  > use version;  $VERSION = version->new(2.34);

  > The version() routine pollutes the namespace in which the $VERSION code is
  > evaled.  It thinks version->new() is version()->new() calling the polluting
  > version() routine.  MakeMaker fixed it by deleting any version() routines 
from
  > the symbol table before trying to eval the $VERSION code.

A different and slightly less brute fix would probably be to say
version::->new() like I do on all package names always everywhere
because it's the only safe way to call a method on a package name that
has no colons in it.

Have you considered this option?


-- 
andreas

Reply via email to