in reply to Which version does Perl 5.14.2 defaults to?

The question is a bit muddy with the terminology, but I can guess what you're aiming at.

As of the versions 5.10 .. 5.16, declaring no version with use enables none of the feature. You still get to use the smart-match and defined-or operators.

In conclusion, it feels like old Perl (5.6 .. 5.8) with extra operators.

  • Comment on Re: Which version does Perl 5.14.2 defaults to?

Replies are listed 'Best First'.
Re^2: Which version does Perl 5.14.2 defaults to?
by JavaFan (Canon) on Mar 01, 2012 at 12:07 UTC
    Plus the bug fixes, the performance improvements, the new regexp-constructs, etc.
Re^2: Which version does Perl 5.14.2 defaults to?
by shajiindia (Acolyte) on Mar 01, 2012 at 12:20 UTC

    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 .

      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.

      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.