Perl 7 anunciou

Na conferencia virtual de hoxe de desenvolvedores de linguaxe Perl anunciou un proxecto Perl 7 que continuará sen problemas co desenvolvemento da rama Perl 5 sen facer cambios radicais. Perl 7 será unha versión similar Perl 5.32.0, agás outras configuracións predeterminadas que son máis consistentes coas prácticas de desenvolvemento modernas. En caso contrario, Perl 7 seguirá sendo o mesmo que Perl 5 e seguirá sendo compatible con aplicacións desenvolvidas anteriormente.

Un cambio significativo no número de versión actuará como unha especie de separador para a transición a un novo modelo para aumentar a funcionalidade da linguaxe Perl sen unha violación notable da compatibilidade con versións anteriores.
Espérase que o lanzamento de Perl 7 axude a atraer novos desenvolvedores a Perl e axude a axilizar o proceso de engadir novas funcións importantes á linguaxe mantendo a compatibilidade coa base de código dos proxectos existentes. Escolleuse o número 7 porque se utilizou Perl 6 para desenvolver a linguaxe que é agora desenvólvese baixo o nome separado Raku. O primeiro lanzamento de Perl 7 espérase o próximo ano. A rama Perl 5.32 será a última da serie Perl 5 e está previsto que teña soporte durante 5 a 10 anos.

O cambio máis notable en Perl 7 é a inclusión de "estrito“, o que implica un control estrito das declaracións de variables, uso de punteiros simbólicos e asignacións de subrutinas. Usar "use rigoroso" é unha boa forma e é usado pola maioría dos desenvolvedores. Do mesmo xeito, de xeito predeterminado planean activar o procesamento de avisos ("usar avisos").

Perl 7 tamén espera estabilizar e activar por defecto algunhas funcións experimentais xa existentes, como sinaturas de funcións ("usar a función 'sinaturas'"), que permiten, ao definir unha función, determinar os argumentos entrantes e automatizar a comprobación do seu número (podes escribir "sub foo ($esquerda, $dereita) {" en lugar de "sub foo { meu($esquerda, $dereita) ) = @_;"). Pretenden incluír soporte por defecto para o operador "isa" para comprobar se un obxecto é unha instancia dunha clase especificada ou unha clase derivada dela ("if( $obj isa Package::Name)", así como a desreferenciación de postfix operacións (postderef) "$ sref->$*" en lugar de "${ $sref }", "$aref->@*" en lugar de "@{ $aref }" e "$href->%{... }" en lugar de "%$href{ ... } "

Os candidatos para ser desactivados por defecto en Perl 7 son:

  • notación de chamada a obxecto indirecto ("sen función qw (indirecta)") é unha forma herdada de chamar obxectos, usando un espazo en lugar de "->" ("método $obxecto @param" en lugar de "$obxecto->$método(@param)"). Por exemplo, en lugar de "my $cgi = new CGI" sempre usarías "my $cgi = CGI->new".
  • Descriptores de ficheiros simples sen declaracións de variables ("sen bareword::filehandle") - usar construcións como "open FH, $file" levará a un erro, cómpre usar "open my $fh, $file". O cambio non afectará aos descritores de ficheiros estándar STDIN, STDOUT, STDERR, ARGV, ARGVOUT e DATA.
  • Matrices multidimensionais e hash ficticios de estilo Perl 4 ("non multidimensional").
    Por exemplo, especificar "$hash{1, 2}" producirá un erro; cómpre usar unha matriz intermedia, por exemplo "$hash{join($;, 1, 2)}".

  • Declaración de prototipos en estilo Perl 4 (necesita usar "use :prototype()").

En plans máis afastados, esperan habilitar o soporte Unicode de forma predeterminada, o que evitará que os desenvolvedores especifiquen "use utf8" no código. Para módulos e scripts que teñen problemas coa nova configuración predeterminada, é posible volver ao comportamento de Perl 5 engadindo a liña "use compat::perl5" ao código. Tamén se gardarán as configuracións individuais e pódense cambiar individualmente.

Fonte: opennet.ru

Engadir un comentario