Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re: Why version strings?

by sundialsvc4 (Abbot)
on Mar 28, 2011 at 16:30 UTC ( #895962=note: print w/replies, xml ) Need Help??

in reply to Why version strings?

Like everything else in the software world, Perl is “a work in progress.”   It is constantly evolving and changing, with new features being added and the implementations of older ones being revised.   This produces known incompatibilities with older code ... and known dependencies upon newer versions of Perl.   The compiler might not detect these, because they might not generate “syntax errors” at all:   the code just doesn’t work properly any more.

Who is the one player in this game who knows this?   You, the programmer.   Only you, who wrote the code or who made the latest changes to it, are in a solid position to know that a dependency exists.   Therefore, you use this statement to inform both Perl and every human who comes after you that the dependency is there.   Now, Perl can enforce it for you.   Pragmatically speaking, “now, the human beings can be aware, probably for the first time, and can take appropriate action and/or make appropriate preparations.”   (If you don’t tell them, how will they know?   The simple answer is, they won’t know, and you will forget.)

If you attempt to install a package onto an incompatible Perl, Perl can, because it is armed with this information that you have provided, block the attempt.   The human being who is making the attempt might then be prompted to actually read the README file:-) in which you oh-so carefully described the issue...

And you should describe the issue carefully, because yes, you will forget.   Include built-in POD documentation in the affected modules, in which you very clearly and completely state what version is required and why it is required, and if possible, what will go wrong if such-and-such version is used by mistake.   “Age happens, it rather sneaks up on you, and it sux.”

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://895962]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2021-05-10 21:04 GMT
Find Nodes?
    Voting Booth?
    Perl 7 will be out ...

    Results (108 votes). Check out past polls.