in reply to Re: RFC: Syntax::Construct
in thread RFC: Syntax::Construct

Sorry, but 'use v5.10;' really sucks. Did you look at what Syntax::Construct does? It also tells the user what version of Perl they need. I think the error message could be made more obviously clear on this point, though. But the big win is that the error message tells you why you need Perl 5.010.

This is how I'd do such a thing:

BEGIN { eval '1 // 2' or die "Perl version $] unsupported (version 5.010 required to get // ope +rator)\n" }

I'd actually change "use 5.010;" so that it was much more informative, especially in the interesting situations. I'd delay its impact until after the code has failed to compile (or not). So you'd get information like:

Search pattern not terminated at bin/script line 123. Perhaps because bin/script requires Perl version 5.010 (and this is on +ly 5.008_008). # or Aborting; Perl version 5.010 required (this is only 5.008_008) by bin/ +script. Yet it compiled without error -- set PERLANYVER to run anyway.

But it is probably even better (in the short term) to have something like Syntax::Construct that can be installed on old versions of Perl to get this improved behavior.

- tye        

Replies are listed 'Best First'.
Re^3: RFC: Syntax::Construct (information++)
by davido (Cardinal) on Dec 25, 2013 at 04:29 UTC

    I was hoping, as I posted my thoughts, that I hadn't missed the point to the module. It looks like you've discovered where it brings added value. I appreciate that, and can see now where it can be useful.


    Dave

      In fact, the message originally did not include the version of Perl needed to run the script, as you can see in the commit history. Adding it, though, was a matter of one line of code. Thank you for inspiration.
      لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ