Анонсирован Π²Ρ‹Ρ…ΠΎΠ΄ Perl 7

Π’Ρ‡Π΅Ρ€Π° Π²Π΅Ρ‡Π΅Ρ€ΠΎΠΌ Π½Π° «Perl and Raku Conference in the Cloud», Sawyer X анонсировал смСну основной вСрсии Perl с 5 Π½Π° 7. Π Π°Π±ΠΎΡ‚Ρ‹ ΡƒΠΆΠ΅ вСдутся, новая вСрсия Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π°. Π‘ΠΎΠ»ΡŒΡˆΠΎΠ³ΠΎ количСства ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΆΠ΄Π°Ρ‚ΡŒ Π½Π΅ стоит, Ссли ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ: Perl 7 это всё Ρ‚ΠΎΡ‚ ΠΆΠ΅ Perl 5.32 с соврСмСнными настройками ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’Π°ΠΌ большС Π½Π΅ Π½Π°Π΄ΠΎ явно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ возмоТности ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈ Ρ‚Π°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, ΠΈΡ… Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ для вас!

Π§Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚?

Полного списка ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚, Π½ΠΎ strict ΠΈ warnigs Ρ‚ΠΎΡ‡Π½ΠΎ! Π’ 7ΠΌ Ρ€Π΅Π»ΠΈΠ·Π΅ сигнатуры скорСй всСго останутся ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, utf8 Ρ‚ΠΎΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ ΡƒΡΠΏΠ΅ΡŽΡ‚.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ?

  • НСпрямой Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

    {;
    package Foo;

    sub new { bless {} }
    sub bar { print "Hello from bar()!n" x pop }
    }

    # ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ²
    my $foo = Foo->new();
    # НСпрямой Π²Ρ‹Π·ΠΎΠ²
    bar $foo 42;

  • ΠŸΡƒΡΡ‚Ρ‹Π΅ слова (barewords) ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ дСскрипторов (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ стандартных (STDIN, STDOUT, STDERR))
  • ПсСвдо ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ Ρ…ΡΡˆΠΈ Π² стилС Perl 4.

    # ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ взяты ΠΈΠ· perldoc perlvar
    $foo{$x,$y,$z}
    # Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ $foo{join($;, $x, $y, $z)}

  • Π‘Ρ‚Π°Ρ€Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Π² стилС Perl 4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΊ:

    sub foo :prototype($$) ($left, $right) {
    return $left + $right;
    }

    Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΉ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π° Π·Π°Ρ‚Π΅ΠΌ сигнатуры ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²ΠΎ врСмя выполнСния.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, останСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ всё ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΎΠΏΡ‚ΠΎΠΌ:
use 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