CPAN clients do a "static" parse (really a single line execution) to check the installed version of a module.

That's interesting and certainly news to me (++). I take it you mean that they do something like a grep for '\$VERSION\s*=' and then execute that line/statement in isolation? It's obvious how that would fail for anything but the simplest cases. Is this documented anywhere?

With your knowledge of these clients, is there any solution to maintaining a uniform version number across multiple modules in a single dist other than just brute-force updates of static scalar values?

Update: To answer my own question, see https://metacpan.org/pod/distribution/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod#Generating-*.pm-files-with-substitutions-eg-of-$VERSION which has a solid-looking answer, if not perhaps the most elegant. I will have a play with this but it looks like it might be a winner.


In reply to Re^7: $VERSION in module files by hippo
in thread $VERSION in module files by bliako

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.