Exporter::require_version almost never gets called. See (tye)Re: Overriding Exporter::import.

I found it funny (and a little sad) that perldata.pod defines this new type of literal but avoids giving it a name. The 5.6.0 pods don't ever mention "v-string" but do eventually refer to these as "vectors of (ordinals|integers)".

As best as I can tell, there is absolutely no way to distinguish v53.46.52 from "5.4" once perl has parsed it. You could cheat a little and assume that if the version scalar already has a numeric value cached inside of it, then it probably isn't a ordinal vector.

You can use Devel::Peek to determine this or use the old hack:

my $version= shift; if( "0" eq ( $version ^ $version ) ) { # $version already has a numeric value } else { # $version is _only_ a string }

Checking the code in universal.c, I see that the default method does something similar:

if (!SvNIOK(sv) && SvPOK(sv)) { # ... } /* if we get here, we're looking for a numeric comparison,

        - tye (but my friends call me "Tye")

In reply to (tye)Re: v1.2.3 syntax by tye
in thread v1.2.3 syntax (vector of ordinals) by John M. Dlugosz

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.