Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

Age sucks.   But Perl, as a language, does have to deal with its age.   Namely, that there are many millions of lines of code, worth many millions of dollars, that must continue to run without alteration, even as Perl itself (incrementally!   not radically!) evolves.   This constrains what the language implementation can and cannot do, and this is also probably why the “new and improved” Perl-6 project never got its wings.

The use language_version idiom is important because it stops the program from running on a version of Perl that (as the author alone knows) can’t run this particular program.   In so doing, it also tells the recipient of that program which minimum version of Perl is said to be required.   A long group of use this_feature; use that_feature; blocks, while maybe equivalent, would be much more cumbersome and less informative to the bloke who’s simply trying to get an unfamiliar bit of software to run on his system and needs to be told what to do.

What we really can’t do, though, is to fundamentally redefine the language, because that will hard-break compatibility and possibly change the fundamental meaning of existing code.   Every existing bit of code, which was interpreted in a particular way ten years ago, must continue to be interpreted in exactly the same way now.   And, if that code depended on an artifact of the implementation that was known and generally-accepted to be true ten years ago, we probably have to keep that artifact forever.   The business risk of doing otherwise is prohibitive:   we must not break Perl.

Given that the language, say, used my since its earliest days, it will need to keep doing so.   If something was not implicit, it can’t be made implicit now.   Whether or not someone thinks that it is in some way “–er” is not the engineering point.   Guaranteed compatibility, and total reliability, is.   We just don’t have arbitrary freedom of choice, even in the name of improvement, because of the million-dollar past.

In reply to Re: Make $^V and "my" implicit by sundialsvc4
in thread Make $^V and "my" implicit by gunzip

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!
  • 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, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            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.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others cooling their heels in the Monastery: (11)
    As of 2015-06-02 22:16 GMT
    Find Nodes?
      Voting Booth?

      What kind of chocolate gives you the most pleasure?

      Results (114 votes), past polls