in reply to Re: Which version does Perl 5.14.2 defaults to?
in thread Which version does Perl 5.14.2 defaults to?

What I meant is if I do not use any particular feature i.e version. Which version is taken by default?

For example running this simple script in version 5.14.2 throws the following error without using 'use 5.014'. In Java if I am using JDK 7 all features of JDK 7 applies to the program by default. How it applies to Perl?


#Script follows say "Hello, World"; #Output follows String found where operator expected at F:\PerlDemo\references\feature +.pl line 1 , near "say "Hello, World"" (Do you need to predeclare say?) syntax error at F:\PerlDemo\references\feature.pl line 1, near "say "H +ello, Worl d"" Execution of F:\PerlDemo\references\feature.pl aborted due to compilat +ion errors .

Replies are listed 'Best First'.
Re^3: Which version does Perl 5.14.2 defaults to?
by Anonymous Monk on Mar 01, 2012 at 14:22 UTC

    5.10 introduced new syntactic constructs such as say. If older code (that was written with an older version) already had a function called say(), Perl 5.10 would error out because of a conflict. That is why the new functions and constructs are only available through a pragma.

    You are supposed to declare the minimum version of Perl that your code demands. This would include regular expression features and whatnot. It is safe to say use 5.014 but if someone will try to run your code with 5.12, he will get an error whether or not you actually use 5.14's new features. This is largely just a convenience for a person trying to figure out whether his version of Perl is good enough for your script.

Re^3: Which version does Perl 5.14.2 defaults to?
by JavaFan (Canon) on Mar 01, 2012 at 13:34 UTC
    Which version is taken by default?
    If you don't understand the answers given to you, ask more specific questions.

    Asking the same question again isn't going to give you a different answer. The answer remains, "if you run 5.14.2, you get 5.14.2. Nothing less, nothing more".

      We can somewhat expand this answer a bit, in that the "default 5.14.2 mode" tries to be very close to 5.8.x, except for fixed bugs and enhancements that do not conflict with 5.8.x.

      In the end, a careful study of perldelta is likely a good approach.