Анонсовано вихід Perl 7

Вчора ввечері на "Perl and Raku Conference in the Cloud", Sawyer X анонсував зміну основної версії Perl із 5 на 7. Роботи вже ведуться, нова версія вийде протягом року. Великої кількості змін чекати не варто, якщо коротко: Perl 7 це все той же Perl 5.32 з сучасними стандартними налаштуваннями. Вам більше не треба явно підключати можливості, які ви і так використовуєте, їх включать для вас!

Що включать?

Повного списку поки немає, але strict і warnigs точно! У 7-му релізі сигнатури швидше за все залишаться експериментальними, utf8 теж включити не встигнуть.

Що буде вимкнено?

  • Непрямий виклик методів:

    {;
    пакет 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) {
    повернути $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

Додати коментар або відгук