Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Is there a concise but summary listing of the most salient changes and additions made to Perl 5 over time?

The perl delta files have all the detailed info for all minor releases, but is there a summary of it anywhere? I'm just looking for one page with bullet points for the major feature changes and additions.

Thanks.

  • Comment on Summary of salient changes to Perl 5 between the major releases?

Replies are listed 'Best First'.
Re: Summary of salient changes to Perl 5 between the major releases?
by daxim (Curate) on Jul 27, 2012 at 16:04 UTC

      Thanks for the links, daxim.

      I should've been more specific: I'm more interested in the major modern changes and additions since 5.8. Sorry for not being specific enough.

      Some examples of what I'd like to know:

      • When was given/when added?
      • When was smart match added?
      • Have there been any pragmas added which, when used, deprecate older less-recommended features?

      And the biggest, which I was unable to articulate until just now: What do the "use 5.$X" pragmas get me? Which features do they enable/disable?

      Thanks so much!

        Many of your questions are answered by the documentation for the feature pragma

        TJD

Re: Summary of salient changes to Perl 5 between the major releases?
by tobyink (Canon) on Jul 28, 2012 at 19:21 UTC

    I'd say the big ones are:

    Perl 5.8
    Decent Unicode
    Decent threading
    PerlIO layer
    Perl 5.10
    Smart match operator
    Defined-or operator
    given and when
    state
    say
    Perl 5.12
    Implicit strictures
    each(@array), keys(@array), values(@array)
    package Foo::Bar 1.23;
    Postfix form of when
    Yada-yada-yada operator
    Perl 5.14
    push $arrayref, @items, etc
    package Foo::Bar 1.23 { ... }
    s///r
    Perl 5.16
    __SUB__
    fc

    I've specifically ignored any new pragmata and core modules, as those are often also available on CPAN for older versions.

    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'