Ayer por la noche en la «Perl and Raku Conference in the Cloud», Sawyer X anunció el cambio de la versión principal de Perl de 5 a 7. Los trabajos ya están en marcha, la nueva versión se lanzará dentro de un año. No se esperan muchos cambios, en resumen: Perl 7 es el mismo Perl 5.32 pero con configuraciones modernas por defecto. ¡Ya no necesitas activar explícitamente las características que ya utilizas, las habilitarán por ti!
¿Qué incluirá?
No hay una lista completa aún, pero ¡strict y warnings seguro! En la versión 7, las firmas probablemente seguirán siendo experimentales y utf8 tampoco se incluirá a tiempo.
¿Qué se desactivará?
- Llamadas a métodos indirectos:
{;
package Foo;sub new { bless {} }
sub bar { print "¡Hola desde bar()!\n" x pop }
}# Нормальный вызов
my $foo = Foo->new();
# Непрямой вызов
bar $foo 42; - Palabras vacías (barewords) como identificadores de descriptores (excepto los estándares (STDIN, STDOUT, STDERR))
- Hashes pseudo multidimensionales estilo Perl 4.
# примеры взяты из perldoc perlvar
$foo{$x,$y,$z}
# на самом деле означает $foo{join($;, $x, $y, $z)} - Prototipos antiguos estilo Perl 4. Ahora debe escribirse solo así:
sub foo :prototype($$) ($left, $right) {
return $left + $right;
}Primero el prototipo que afecta a la compilación de las llamadas, y luego las firmas que colocan los argumentos en las variables correspondientes durante la ejecución.
Sin embargo, seguirá habiendo la opción de revertir todo de una vez:
use compat::perl5;
O uno por uno.
Perl 5.32 entra en un modo de soporte prolongado durante un periodo de 5 años.
Anuncio detallado de Brian D. Foy: https://www.perl.com/article/announcing-perl-7/
Versión TL;DR de él: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
Fuente: linux.org.ru
