Anunciado o Perl 7

Na conferência virtual de desenvolvedores de Perl que acontece hoje foi anunciado o projeto Perl 7, que dará continuidade ao desenvolvimento da linha Perl 5 sem introduzir alterações radicais. O Perl 7 será semelhante ao lançamento Perl 5.32.0, com exceção de diferentes configurações padrão, que melhor se alinham com as práticas modernas de desenvolvimento. De resto, o Perl 7 permanecerá o mesmo Perl 5 e manterá a compatibilidade com aplicativos anteriormente desenvolvidos.

Uma mudança significativa na numeração da versão servirá como um divisor que marca a transição para um novo modelo de incremento de funcionalidades da linguagem Perl sem uma violação perceptível da compatibilidade reversa.
Esperamos que a criação do Perl 7 ajude a atrair novos desenvolvedores para o uso do Perl e a estabelecer o processo de adição de novas funcionalidades significativas à linguagem, mantendo a compatibilidade com a base de código existente. O número 7 foi escolhido porque o Perl 6 foi utilizado no desenvolvimento da linguagem, que agora está em desenvolvimento operará sob um nome distinto, Raku. O primeiro lançamento do Perl 7 está previsto para o próximo ano. A linha Perl 5.32 será a última da série Perl 5 e está prevista para ser suportada por um período de 5 a 10 anos.

A mudança mais notável no Perl 7 será a inclusão, por padrão, do modo "strict", que implica uma verificação rigorosa da declaração de variáveis, uso de ponteiros simbólicos e atribuição de subprogramas. O uso de "use strict" é uma boa prática e é aplicado pela maioria dos desenvolvedores. Da mesma forma, planeja-se incluir, por padrão, o tratamento de avisos ("use warnings«).

No Perl 7, também se pretende estabilizar e incluir por padrão algumas funcionalidades experimentais já existentes, como a assinatura de funções ("use feature 'signatures'"), permitindo ao definir uma função especificar argumentos de entrada e automatizar a verificação de seu número (será possível escrever "sub foo ($left, $right) {" ao invés de "sub foo { my($left, $right) = @_;" ). Também se planeja incluir por padrão o suporte ao operador "isa" para verificar se um objeto é uma instância da classe especificada ou de uma classe derivada dela ("if( $obj isa Package::Name )"), bem como operações de desreferenciamento pós-fixo (postderef) " $sref->$*" ao invés de "${ $sref }", " $aref->@*" ao invés de "@{ $aref }" e " $href->%{ … }" ao invés de "%$href{ … }".

Os candidatos à desativação por padrão no Perl 7 são:

  • Notação de chamada indireta de objetos («sem recurso qw(indirect)«) — um método obsoleto de chamar objetos, onde em vez de «->» é utilizado um espaço («método $objeto @param» em vez de «$objeto->$método(@param)»). Por exemplo, em vez de «my $cgi = new CGI», você deve sempre usar «my $cgi = CGI->new».
  • Manipuladores de arquivo nus sem declaração de variáveis («sem bareword::filehandle«) — a utilização de construções como «open FH, $file» levará a um erro, você deve usar «open my $fh, $file». A mudança não afetará os manipuladores de arquivo padrão STDIN, STDOUT, STDERR, ARGV, ARGVOUT e DATA.
  • Arrays e hashes fictícios em estilo Perl 4 («sem multidimensional«).
    «) — por exemplo, especificar «$hash{1, 2}» levará a um erro, você deve usar um array intermediário, como «$hash{join($;, 1, 2)}».
  • Declaração de protótipos em estilo Perl 4 (deve-se usar «use :prototype()»).

Nos planos mais distantes, está previsto incluir suporte a Unicode por padrão, o que livrará os desenvolvedores da necessidade de especificar «use utf8» no código. Para módulos e scripts que encontrarem problemas com as novas configurações padrão, há a possibilidade de retornar ao comportamento do Perl 5 através da adição da linha «use compat::perl5» no código. Configurações individuais também serão mantidas e poderão ser alteradas separadamente.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster