To be slightly clearer on a couple of points, when use Module VERSION fails because the version number is not high enough

  1. The require part of the use happens first
  2. The require step makes no use of the version information, just grabbing the first module of that name that it finds via @INC
  3. The version check happens second
  4. Since the version check fails, the import() part never happens
  5. The successful require doesn't get undone

BTW, some modules are smart enough to provide their own sub VERSION so that they can record which version was requested and then have that information impact their sub import to cause it to act in a backward-compatible manner. That way they can make more types of improvements in newer versions of their module without breaking backward compatibility (so long as they documented that users of their modules should always specify which version's interface they programmed to).

- tye        


In reply to Re^7: BEGIN and compile-time (version) by tye
in thread BEGIN and compile-time by jbert

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.