рдкрд░реНрд▓ 7 рдЪреА рдШреЛрд╖рдгрд╛ рдХреЗрд▓реА

рдХрд╛рд▓ рд░рд╛рддреНрд░реА рдХреНрд▓рд╛рдЙрдбрдордзреАрд▓ рдкрд░реНрд▓ рдЖрдгрд┐ рд░рд╛рдХреВ рдкрд░рд┐рд╖рджреЗрдд, рд╕реЙрдпрд░ рдПрдХреНрд╕ рдпрд╛рдВрдиреА рдШреЛрд╖рдгрд╛ рдХреЗрд▓реА рдкрд░реНрд▓рдЪреА рдореБрдЦреНрдп рдЖрд╡реГрддреНрддреА 5 рддреЗ 7 рдкрд░реНрдпрдВрдд рдмрджрд▓рдд рдЖрд╣реЗ. рдХрд╛рдо рдЖрдзреАрдЪ рд╕реБрд░реВ рдЖрд╣реЗ, рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдПрдХрд╛ рд╡рд░реНрд╖рд╛рдд рдкреНрд░рд╕рд┐рджреНрдз рд╣реЛрдИрд▓. рддреБрдореНрд╣реА рдЦреВрдк рдмрджрд▓рд╛рдВрдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реВ рдирдпреЗ, рдереЛрдбрдХреНрдпрд╛рдд: Perl 7 рд╣реЗ рдЖрдзреБрдирд┐рдХ рдбреАрдлреЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ рдЕрдЬреВрдирд╣реА рд╕рдорд╛рди Perl 5.32 рдЖрд╣реЗ. рддреБрдореНрд╣реА рдЖрдзреАрдЪ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдкреБрдвреЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рддреА рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рд╕рдХреНрд╖рдо рдХреЗрд▓реА рдЬрд╛рддреАрд▓!

рдХрд╛рдп рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓?

рдЕрджреНрдпрд╛рдк рдХреЛрдгрддреАрд╣реА рд╕рдВрдкреВрд░реНрдг рдпрд╛рджреА рдирд╛рд╣реА, рдкрд░рдВрддреБ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдХрдареЛрд░ рдЖрдгрд┐ рдЪреЗрддрд╛рд╡рдгреА! 7рд╡реНрдпрд╛ рд░рд┐рд▓реАрдЭрдордзреНрдпреЗ, рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдмрд╣реБрдзрд╛ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд░рд╛рд╣рддреАрд▓, рддреНрдпрд╛рдВрдирд╛ utf8 рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрд│рд╣реА рдорд┐рд│рдгрд╛рд░ рдирд╛рд╣реА.

рдХрд╛рдп рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдИрд▓?

  • рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдкрджреНрдзрдд рдХреЙрд▓:

    {;
    рдкреЕрдХреЗрдЬ рдлреВ;

    рд╕рдм рдирд╡реАрди { рдЖрд╢реАрд░реНрд╡рд╛рдж {} }
    рд╕рдмрдмрд╛рд░ { рдкреНрд░рд┐рдВрдЯ "рд╣реЕрд▓реЛ рдлреНрд░реЙрдо рдмрд╛рд░()! n" x рдкреЙрдк }
    }

    # рд╕рд╛рдорд╛рдиреНрдп рдХреЙрд▓
    рдорд╛рдЭреЗ $foo = Foo->рдирд╡реАрди();
    # рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓
    рдмрд╛рд░ $foo 42;

  • рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдореНрд╣рдгреВрди рд░рд┐рдХреНрдд рд╢рдмреНрдж (рдмреЗрдЕрд░рд╡рд░реНрдбреНрд╕) (рд╕реНрдЯрдБрдбрд░реНрдб (STDIN, STDOUT, STDERR) рд╡рдЧрд│рддрд╛)
  • рдкрд░реНрд▓ 4 рдЪреНрдпрд╛ рд╢реИрд▓реАрдордзреНрдпреЗ рд╕реНрдпреВрдбреЛ рдмрд╣реБрдЖрдпрд╛рдореА рд╣реЕрд╢.

    # рдЙрджрд╛рд╣рд░рдгреЗ perldoc perlvar рдордзреВрди рдШреЗрддрд▓реА
    $foo{$x,$y,$z}
    # рдореНрд╣рдгрдЬреЗ $foo{join($;, $x, $y, $z)}

  • рдкрд░реНрд▓ 4 рд╢реИрд▓реАрддреАрд▓ рдЬреБрдиреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк. рдЖрддрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рдЕрд╕реЗ рд▓рд┐рд╣рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓:

    sub foo :рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк($$) ($рдбрд╛рд╡реЗ, $рдЙрдЬрд╡реЗ) {
    $left + $right рдкрд░рдд рдХрд░рд╛;
    }

    рдкреНрд░рдердо, рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЬреЛ рдХреЙрд▓рдЪреНрдпрд╛ рд╕рдВрдХрд▓рдирд╛рд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рддреЛ рдЖрдгрд┐ рдирдВрддрд░ рд░рдирдЯрд╛рдЗрдордЪреНрдпрд╛ рд╡реЗрд│реА рдпреЛрдЧреНрдп рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдордзреНрдпреЗ рдпреБрдХреНрддрд┐рд╡рд╛рдж рдареЗрд╡рдгрд╛рд░реА рд╕реНрд╡рд╛рдХреНрд╖рд░реА.

рддрдерд╛рдкрд┐, рддрд░реАрд╣реА рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕рд░реНрд╡рдХрд╛рд╣реА рдкрд░рдд рдХрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдЕрд╕реЗрд▓:
compat::perl5 рд╡рд╛рдкрд░рд╛;
рдХрд┐рдВрд╡рд╛ рдПрдХ рдПрдХ рдХрд░реВрди.

Perl 5.32 5 рд╡рд░реНрд╖реЗ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рд╣реВрди рдЕрдзрд┐рдХ рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕рдорд░реНрдердирд╛рдХрдбреЗ рдЬрд╛рдд рдЖрд╣реЗ.

рдмреНрд░рд╛рдпрди рдбреА рдлреЙрдп рдХрдбреВрди рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдШреЛрд╖рдгрд╛: https://www.perl.com/article/announcing-perl-7/
рддреНрдпрд╛рдЪреНрдпрд╛рдХрдбреВрди TL;DR рдЖрд╡реГрддреНрддреА: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html

рд╕реНрддреНрд░реЛрдд: linux.org.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛