Perl 5.44


3

Após um ano de desenvolvimento publicado lançamento de um novo ramo estável da linguagem de programação Perl - 5.44. No preparando A nova versão alterou aproximadamente 270 linhas de código (excluindo documentação e código gerado automaticamente - 110), as alterações afetaram 860 arquivos e 71 desenvolvedores participaram do desenvolvimento.

A versão 5.44 foi lançada de acordo com o cronograma de desenvolvimento fixo estabelecido há treze anos, que prevê o lançamento de novas versões estáveis ​​uma vez por ano e versões secundárias a cada três meses. A primeira versão secundária, Perl 5.44.1, está prevista para ser lançada em cerca de um mês, corrigindo os bugs mais significativos descobertos durante a implementação do Perl 5.44.0. Com o lançamento do Perl 5.44, o suporte para a versão 5.40 foi encerrado; atualizações para ela poderão ser lançadas no futuro apenas se forem descobertos problemas críticos de segurança. Iniciado O processo de desenvolvimento da versão experimental 5.45, que servirá de base para o lançamento da versão estável do Perl 5.46 no primeiro semestre de 2027, a menos que uma decisão seja tomada em contrário. ir até a numeração 7.x.

Chave mudanças:

  • Adicionado por possibilidade experimental de usar parâmetros nomeados em assinaturas Funções que definem a lista de variáveis ​​passadas para a função não no corpo da função, mas durante sua declaração. Esse novo recurso permite que os parâmetros sejam passados ​​não em uma ordem estrita, mas em qualquer ordem, usando pares chave/valor e uma sintaxe semelhante à atribuição de elementos em hashes:
    • Sintaxe antiga: sub f { my ($x, $y) = @_; …} f(1, 2);
    • assinaturas: sub f ($x, $y) { … } f(1, 2);
    • assinaturas com parâmetros nomeados: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Adicionado suporte experimental para o uso de aliases (ponteiros para ponteiros) em loops foreach com múltiplas variáveis. Este recurso permite criar um alias em um loop foreach ao recuperar múltiplos valores em uma única iteração do loop. Por exemplo, você pode criar um alias para um elemento de um hash com um array ao iterar sobre as chaves e os valores do hash: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "O array $key contém: @items"; } # Antes da versão 5.44, a desreferenciação seria necessária: foreach my ( $key, $var ) ( %hash ) { say "O array $key contém: @$var"; } # Sem os recursos experimentais de refaliasing e declared_refs: foreach my $key (keys %hash) { say "O array $key contém: @{$hash{$key}}"; }
  • Em expressões regulares implementado O modo experimental 'enhanced_xx' permite que o modificador /xx seja usado com classes de caracteres entre colchetes ([a-zA-Z]) para dividi-las em várias linhas ou para inserir comentários. Por exemplo, a condição if ($text =~ m/[a-zA-Z]/){ poderia ser escrita como: if ($text =~ m/[ a-z # letras minúsculas A-Z # letras maiúsculas ]/xx) {
  • O gerador de números pseudoaleatórios usa a chamada de sistema getentropy() para obter entropia em sistemas que a suportam (Linux, BSD, macOSEm outros sistemas, a entropia é obtida lendo do dispositivo /dev/urandom ou usando um hash do tempo, ID do processo e valor do ponteiro.
  • Adicionado suporte de especificação Unicode 17.0.
  • A estrita conformidade com as regras Unicode foi garantida para nomes de identificadores e grupos de expressões regulares, com aproximadamente 160 caracteres Unicode anteriormente cobertos pela classe `w` agora proibidos. Por exemplo, a classe `w`, que abrange todas as letras, dígitos e o caractere de sublinhado, agora exclui letras latinas circuladas, que se assemelham a letras reais, mas não o são. Essa mudança de comportamento afeta apenas programas que utilizam o modo `use utf8`.
  • Correção de vulnerabilidades causadas por estouros de buffer nas funções Perl_study_chunk (CVE-2026-8376, aparece em assemblies de 32 bits) e S_measure_struct (CVE-2026-57432), bem como estouro do contador de 16 bits no mecanismo Regex (CVE-2026-13221), o que pode fazer com que a expressão regular falhe.
  • Saltar para posições dentro de laços e estruturas de bloco usando o operador goto é proibido. Este recurso foi descontinuado em 2010.
  • Foram feitas otimizações de desempenho para acelerar a adição, subtração e multiplicação de números inteiros, o processamento de assinaturas de funções e o preenchimento de hashes a partir de listas de chave/valor com chaves de string conhecidas em tempo de compilação.

Fonte: linux.org.ru

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