Na noite de ontem na "Perl and Raku Conference in the Cloud", Sawyer X anunciou a mudança da versão principal do Perl de 5 para 7. O trabalho já está em andamento e a nova versão será lançada dentro de um ano. Não espere muitas mudanças, em resumo: Perl 7 é essencialmente o mesmo Perl 5.32 com configurações modernas padrão. Você não precisará mais ativar explicitamente os recursos que já está utilizando, eles serão ativados para você!
O que será incluído?
Ainda não há uma lista completa, mas strict e warnings com certeza estarão lá! No sétimo lançamento, as assinaturas provavelmente permanecerão experimentais, assim como a inclusão de utf8 não será concluída a tempo.
O que será desativado?
- Chamadas indiretas de métodos:
{;
package Foo;sub new { bless {} }
sub bar { print "Hello from bar()!n" x pop }
}# Нормальный вызов
my $foo = Foo->new();
# Непрямой вызов
bar $foo 42; - Palavras soltas (barewords) como identificadores de descritores (exceto os padrões (STDIN, STDOUT, STDERR))
- Hashes pseudo multidimensionais no estilo Perl 4.
# примеры взяты из perldoc perlvar
$foo{$x,$y,$z}
# на самом деле означает $foo{join($;, $x, $y, $z)} - Protótipos antigos no estilo Perl 4. Agora você deve escrever apenas assim:
sub foo :prototype($$) ($left, $right) {
return $left + $right;
}Primeiro o protótipo que influencia a compilação das chamadas, e depois as assinaturas que colocam os argumentos nas variáveis correspondentes durante a execução.
Ainda assim, haverá a possibilidade de reverter tudo de uma vez:
use compat::perl5;
Ou uma de cada vez.
Perl 5.32 entra em modo de suporte prolongado por um período de 5 anos.
Anúncio detalhado de Brian D Foy: https://www.perl.com/article/announcing-perl-7/
Versão TL;DR dele mesmo: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
Fonte: linux.org.ru
