version.pm: just say no

Thanks to the CPAN testers, I have found out that there is an exciting bug in version.pm. Somewhere in between versions 0.74 and 0.82, qv()'s behaviour changed, and so my CPAN::ParseDistribution started failing two of its tests.

There's no reason to ever use version.pm, which only exists to support the absurd practice of using things other than number as version numbers. Use of version.pm makes tools for dealing with the CPAN an order of magnitude more complex.

USE OF version.pm IS A BUG. STOPPIT!

11 Comments

I never understood using a module just to have a version number.

So which modules on CPAN are using it?

Ick, just noticed BioPerl on that list. That might be worth looking into.

Take that back, looks like it isn't actually required for core code (and isn't listed in Build.PL as required). It is used with an optional tool (the Deobfuscator) that comes with the distribution.

AFAICT any module with VERSION_FROM in its Makefile.PL shows up in David Cantrell's list, so I'm not sure any conclusions should be drawn.

Note that Module::Build has a trojan version of version.pm. That's caused some pain in some of my work where I've wanted to avoid version.pm. :(

Please lets remove it from CORE

IMO, the use of version.pm to declare $VERSION is generally not a great idea and should be avoided. However, for parsing or comparing all the various crap that modules might put in $VERSION, version.pm is the best way to do it consistently and portably across all versions of Perl.

c.f. Version Numbers Should be Boring

Leave a comment

About David Cantrell

user-pic I'm in yur test resultz analyzn yr failz