O Perl 7 continuará a evolução do Perl 5 sem romper a retrocompatibilidade.

O conselho de gerenciamento do projeto Perl resumiu os planos para o desenvolvimento futuro da ramificação Perl 5 e a criação da ramificação Perl 7. Durante as discussões, o conselho concordou que não é aceitável quebrar a compatibilidade com o código já escrito para Perl 5, exceto em casos onde a quebra de compatibilidade é necessária para corrigir vulnerabilidades. O conselho também concluiu que a linguagem deve evoluir e que novas funcionalidades devem ser promovidas de forma mais intensa, simplificando o acesso às inovações emergentes e incentivando sua implementação.

Ao contrário das intenções iniciais, que permitiam a inclusão de mudanças que quebrariam a compatibilidade por padrão na ramificação Perl 7, o novo plano implica a transformação gradual da ramificação Perl 5 em Perl 7 sem quebrar a compatibilidade com o código já existente. O lançamento do Perl 7.0 não será conceitualmente diferente de uma nova ramificação Perl 5.xx.

O desenvolvimento de novas versões do Perl 5 continuará como antes — novas funcionalidades adicionadas à ramificação que são incompatíveis com o código antigo serão incluídas apenas mediante indicação explícita no código com as pragmas ‘use version’ ou ‘use feature capability’. Por exemplo, na versão Perl 5.010 foi introduzida a nova palavra-chave ‘say’, mas como em códigos existentes poderiam ser usadas funções com o nome ‘say’, o suporte para a nova palavra-chave foi ativado apenas mediante a indicação explícita da pragma ‘use feature ‘say’'.

A nova sintaxe incorporada à linguagem, que anteriormente resultava em erro em versões passadas, torna-se disponível imediatamente, sem a necessidade de especificar pragmas especiais. Por exemplo, no Perl 5.36, haverá uma sintaxe simplificada para o processamento simultâneo de vários valores de uma lista (‘foreach my ($key, $value) (%hash) {‘), que estará disponível imediatamente, mesmo em códigos sem a pragma ‘use v5.36’.

Na sua forma atual, no Perl 5.36, ao usar a pragma ‘use v5.36’ são ativadas 13 funcionalidades que quebram a compatibilidade (‘say’, ‘state’, ‘current_sub’, ‘fc’, ‘lexical_subs’, ‘signatures’, ‘isa’, ‘bareword_filehandles’, ‘bitwise’, ‘evalbytes’, ‘postderef_qq’, ‘unicode_eval’ e ‘unicode_strings’), os modos ‘use strict’ e ‘use warnings’ são ativados por padrão e o suporte para a notação obsoleta de chamada de objetos (onde em vez de ‘->’ é usado um espaço) e arrays multidimensionais e hashes no estilo Perl 4 (‘$hash{1, 2}’) é desativado.

Quando muitas mudanças se acumularem, ao invés de um novo lançamento do Perl 5.x, será criada a versão Perl 7.0, que servirá como um instantâneo do estado atual, mas continuará totalmente compatível com o Perl 5. Para incluir mudanças e configurações que quebram a compatibilidade, será necessário adicionar explicitamente a pragma 'use v7' ao código. Ou seja, o código com a pragma 'use v7' pode ser interpretado como 'Perl moderno', onde mudanças incompatíveis são acessíveis, enquanto sem ela, é 'Perl conservador', que permanecerá plenamente compatível com versões anteriores.

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