This convention is a bit misleading as it apparently clashes with the convention for CPAN development releases. CPAN development releases are marked by distribution tarballs whose version numbers like '1.19_02' contains underscores. The development releases are meant to publish unstable code which is possibly in-progress work (so they are available to others experiment with that).

But that only happens if the author defines the $VERSION to be a string, so when it is used (by ExtUtils::MakeMaker or Module::Build) to construct the tarball name, the underscores are there. In the convention you mentioned, the underscore only exists at the source code and disappears after Perl compiles this piece of code (then, 1.19_02 is undistinguishable from 1.1902). They do not generate development releases (as a beginner may think it should) and only creates an artificial three-part version where the last parts are constrained to vary up to 99 (which is enough for most practical uses). So it is not a big deal/win compared to conventions that just use:

# vv-- Incremented at will $VERSION = 1.1902; # ^ ^^ # | \+----- Incremented for non-trivial changes to features # \-------- Incremented for fundamental changes

And notice that perl convention itself is to use three rather than two digits as in 5.8.6 = 5.008006.

NOTE. Development releases have a curse on themselves which is not being indexed by PAUSE, which requires the user to specify a full name at CPAN shell commands like "install AUTHOR/Boo-1.19_02.tar.gz" when installing instead of only "install Boo" (but that is purposeful to avoid development releases to be installed by mistake). The curse is that development releases never get tested as it should and are second-rate citizens at CPAN for many tools.


In reply to Re: module version convention by ferreira
in thread module version convention by metaperl

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.