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.”
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.