Um ano após o lançamento do Perl 5.28.0, o lançamento Perl 5.30.0.
Mudanças importantes:
- Adicionado suporte para Unicode versões 11, 12 e versão de rascunho 12.1;
- O limite superior "n" especificado em um quantificador de expressão regular no formato "{m, n}" foi dobrado para 65534;
- Metacaracteres em especificações de valor de propriedade Unicode agora são parcialmente suportados;
- Adicionado suporte para qr'N{name}';
- O Perl agora pode ser compilado para sempre usar as operações thread-safe do locale;
- O comprimento variável limitado na correspondência de padrão regex agora é suportado experimentalmente;
- Agora usa um método mais rápido para converter para UTF-8;
- As localidades Turkic UTF-8 agora são suportadas sem problemas;
- Removido o uso da macro opASSIGN do kernel;
Recursos que foram removidos e alterações incompatíveis:
- Módulos removidos: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Os separadores de padrão agora devem ser grafemas;
- Os separadores agora devem ser grafemas;
- Algumas formas anteriormente obsoletas de usar o colchete esquerdo sem escape "{" em padrões de expressão regular agora são proibidas;
- Atribuir um valor diferente de zero a $[ (o índice do primeiro elemento da matriz) agora é fatal;
- Os sysread()/syswrite() obsoletos anteriormente agora são fatais ao manipular :utf8.
- my() em condições falsas agora está desativado;
- Obsoleto $* (uma variável usada para habilitar a correspondência de várias linhas e foi removida no Perl v5.10.0) e $# (uma variável usada para formatar números de saída e foi removida no Perl v5.10.);
- O uso não qualificado de dump() está obsoleto;
- Arquivo Removido::Glob::glob();
- pack() não pode mais retornar UTF-8 inválido;
- Qualquer conjunto de números em um script compartilhado é válido em um script executado por outro script;
- JSON::PP inclui allow_nonref por padrão;
Funcionalidade obsoleta:
- Agora você não pode usar várias macros no código XS que processam UTF-8;
Fonte: linux.org.ru