[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Enabling/using Perl 5.10+ functions: say(), state(), given/switch and "'use strict' by default"

On Wed, May 10, 2017 at 05:24:24PM +0200, Erik Huelsmann wrote:
> Hi all,
> In the comments to his PR (
> https://github.com/ledgersmb/LedgerSMB/pull/2695#issuecomment-300053021),
> Rob suggests we should start using

> use v5.14;

Personally, I am not set on any particular version number.  And that
would be most important as it would effect upgraders.

> ... that statement [use v5.14;]  also means that we will automatically
> enable:

> * use strict;
> * availability of the functions say() and state()
> * availability of the switch/given construct.

I think those are all minor issues looking at Lsmb as an application or as
independent modules.  These are parsing matters that can be turned on or off
with 'no feature', etc.

> So, the question: do we want to use the 'use VERSION;' statement to set the
> minimal Perl version, with the indicated side-effects?

The big advantages are two.  

1) That 'use v5.14;' does more than require a minimal Perl version.  It
makes a Perl version 5.16 to 5.24 downgrade itself to version 5.14
preventing accidental collisions with newer features.  

2) Put in login.pl and setup.pl 'use VERSION;' will let us crash early
before much effort is wasted by users.

Testing needs should shrink.  A rigorous and enforced definition of
coordinated user/developer platform requirements is just tighter

>From the developer's perspective, I don't think there is much pain
involved.  I have gone from 5.004 to 5.24 and scarcely noticed anything
but improvements.

On the other hand: 

I have not used this feature much.  So, to this point, I am trusting
the P5Pers are doing it right.  I have volunteered to investigate the
robustness of this feature before any action is taken.

Tighter controls can be a bother--although I don't think this one would
be much of one in the day to day development.

That a higher 'require XXXXX;' is in some Perl dependency causes a late
death.  This could be avoided by auditing dependencies at setup.  This
is a bit of work but also has merit in itself.

Writing at v5.6 is comfortable.

Be well,

Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Ledger-smb-devel mailing list