Dominique Dumont wrote:
This is confusing. Shouldn't 1.90 be mapped to 1.090.000 ?
I know it is confusing and it's not my fault; when 5.6.0 was released, the
documentation specifically stated that 5.6.0 === 5.006000. Besides, you haven't
though this through; numeric versions have to [ultimately] be compared as
numbers (because there is broken software that still does that, like EU::MM).
Here is a sequence that shows why your interpretation won't work:
Numeric Extended
1.80 1.80.0
1.90 1.90.0
1.99 1.99.0
1.100!!! 1.100.0
As you can see, that last line fails to compare as a number, though it works
fine with extended versions.
But it is confusing to be required to specify a version that does not
exists as is in Parse::RecDescent history.
Well, that's Damian's fault for switching between numeric versions and
multi-decimal version objects. The very first section of the Best Practices
portion of the POD for version.pm states:
* Be consistent
Whichever of the two types of version objects that you choose to
employ, you should stick to either "Numeric Versions" or "Extended
Versions" and not mix them together. While this is possible, it is
very confusing to the average user.
Furthermore, this dependency test works fine with MakeMaker so it is a
nasty surprise for people who are moving from MakeMaker to
Module::Build.
MakeMaker doesn't use version objects at all, and in this case, it is MakeMaker
that is broken.
Sorry
John