http://qs321.pair.com?node_id=11122151


in reply to RFC: How did I do writing my first test?

G'day Lady Aleena,

With regard to this line:

use v5.10.0;

Whenever I specify a minimum Perl version, I always put the use VERSION; statement as the first line of code. Let users know immediately if their Perl version is too old. There may be other benefits: such as enabling features; and, if you have use 5.012; (or later) you'll get use strict; for free (see use for details).

The documentation for use has:

use 5.024_001; # ditto; older syntax compatible with perl 5.6

While I generally wouldn't expect people to be using such old versions, i.e. 5.6 or earlier, I typically hedge my bets and use that format just in case.

In most cases, I don't include a subversion in the use VERSION; statement. However, 5.10.0 had a number of problems which were fixed in 5.10.1 — those changes were incompatible with 5.10.0 (see "perl5101delta: Incompatible Changes"). On the rare occasions that I've needed to specify 5.10 as a minimum version, I've used:

use 5.010_001;

— Ken

Replies are listed 'Best First'.
Re^2: RFC: How did I do writing my first test?
by tobyink (Canon) on Sep 24, 2020 at 11:25 UTC

    Most of the incompatible changes in 5.10.1 were with regards to smart match and switch. use 5.010 is fine if you just want say, state, and //.

      Yes, you are correct. I was aware of this but, not knowing who else was, I provided a link to those changes.

      At the time of writing, the reason for specifying 5.10.0 was unclear. That's since been elucidated (2nd paragraph) and commented upon adequately: I don't have anything further to add to that.

      — Ken