>>>>> 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