Perl 7 рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдпреЛ

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

рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреЗрдЫ?

рддреНрдпрд╣рд╛рдБ рдЕрдЭреИ рдХреБрдиреИ рдкреВрд░реНрдг рд╕реВрдЪреА рдЫреИрди, рддрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рдХрдбрд╛ рд░ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ! 7 рдФрдВ рд╡рд┐рдореЛрдЪрдирдорд╛, рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рд╕рдореНрднрд╡рддрдГ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд╣рдиреЗрдЫрдиреН, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ utf8 рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдордп рд╣реБрдиреЗрдЫреИрдиред

рдХреЗ рдЕрдХреНрд╖рдо рд╣реБрдиреЗрдЫ?

  • рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рдзрд┐ рдХрд▓:

    {;
    рдкреНрдпрд╛рдХреЗрдЬ рдлреВ;

    рд╕рдм рдирдпрд╛рдБ { рдЖрд╢реАрд░реНрд╡рд╛рдж {} }
    рд╕рдм рдмрд╛рд░ { рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН "рдмрд╛рд░рдмрд╛рдЯ рдирдорд╕реНрдХрд╛рд░()! n" x рдкрдк }
    }

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

  • рдЦрд╛рд▓реА рд╢рдмреНрджрд╣рд░реВ (рдмреЗрдпрд░рд╡рд░реНрдбрд╣рд░реВ) рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ (рдорд╛рдирдХрд╣рд░реВ рдмрд╛рд╣реЗрдХ (STDIN, STDOUT, STDERR))
  • Perl 4 рдХреЛ рд╢реИрд▓реАрдорд╛ рд╕реНрдпреВрдбреЛ рдмрд╣реБрдЖрдпрд╛рдореА рд╣реНрдпрд╛рд╕рд╣рд░реВред

    # рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ perldoc perlvar рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ
    $foo{$x,$y,$z}
    # рд╡рд╛рд╕реНрддрд╡рдорд╛ $foo{join($;, $x, $y, $z)} рдХреЛ рдЕрд░реНрде

  • Perl 4 рд╢реИрд▓реАрдорд╛ рдкреБрд░рд╛рдиреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд╣рд░реВред рдЕрдм рддрдкрд╛рдИрдВрд▓реЗ рдХреЗрд╡рд▓ рдпрд╕рд░реА рд▓реЗрдЦреНрдиреБ рдкрд░реНрдЫ:

    sub foo : рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк($$) ($рдмрд╛рдпрд╛рдБ, $рджрд╛рдпрд╛рдБ) {
    $рдмрд╛рдпрд╛рдБ + $рджрд╛рдпрд╛рдБ рдлрд░реНрдХрд╛рдЙрдиреБрд╣реЛрд╕реН;
    }

    рдкрд╣рд┐рд▓реЗ, рдХрд▓рд╣рд░реВрдХреЛ рд╕рдВрдХрд▓рдирд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд░рдирдЯрд╛рдЗрдордорд╛ рдЙрдкрдпреБрдХреНрдд рдЪрд░рд╣рд░реВрдорд╛ рддрд░реНрдХрд╣рд░реВ рд░рд╛рдЦреНрдиреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВред

рдпрджреНрдпрдкрд┐, рддреНрдпрд╣рд╛рдБ рдЕрдЭреИ рдкрдирд┐ рд╕рдмреИ рдереЛрдХ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░ рд╣реБрдиреЗрдЫ:
compat::perl5 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
рд╡рд╛ рдПрдХ рдПрдХ рдЧрд░реЗрд░ред

Perl 5.32 5 рд╡рд░реНрд╖ рд╡рд╛ рд╕реЛрднрдиреНрджрд╛ рдмрдвреАрдХреЛ рд▓рд╛рдЧрд┐ рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕рдорд░реНрдердирдорд╛ рд╕рд░реНрджреИрдЫред

рдмреНрд░рд╛рдпрди рдбреА Foy рдмрд╛рдЯ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдШреЛрд╖рдгрд╛: 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди