[Rio-pm] Perl 5.10 lançado!
breno
breno em rio.pm.org
Terça Dezembro 18 15:38:27 PST 2007
Bom, o pessoal da perl.org ainda não atualizou seu site, mas é com
grande prazer que informo a todos que a versão 5.10 do Perl foi
lançada oficialmente HOJE, em conjunto com o Parrot 0.5.1, em
comemoração aos 20 anos de existência da linguagem Perl!
http://search.cpan.org/dist/perl-5.10.0/
As principais mudanças foram:
======================
- pragma "feature" para fazer opt-in das mudanças no Perl 5.10 que
quebram compatibilidade para trás.
- parâmetro -E na linha de comando, igual ao -e só que ativando todas
as features novas!
- operador // para operações "definido-ou". Assim, ao invés de
escrevermos "defined $a ? $a : $b" podemos escrever "$a // $b"
- declaração tipo "switch":
given ($foo) {
when (/^abc/) { $abc = 1; }
when (/^def/) { $def = 1; }
when (/^xyz/) { $xyz = 1; }
default { $nothing = 1; }
}
- váááááááááááárias otimizações e adições na engine de ER, como
padrões recursivos (??{}), buffers de captura com nomes (adicionando
ainda os hashes mágicos %+ e %-), quantificadores possessivos, verbos
de controle, referências relativas, escapes \k para manter palavra
após match, \v para espaços verticais e \h para os horizontais (com
respectivos \V e \H) e \R para quebras de linha genéricas.
- função say(), equivalente a print com um "\n" automático no final;
- possibilidade de prender $_ a um escopo léxico;
- inclusão do _, equivalente ao $ mas que por padrão vai pra $_ se o
argumento correspondente não for fornecido;
- bloco UNITCHECK;
- pragma "mro" (de Memory Resolution Order);
- ajustes de readdir() e derivados para funcionarem melhor em ambientes Windows;
- possibilidade de fazer override na função readpipe();
- readline() agora por padrão lê *ARGV se não receber nada;
- adição de variáveis tipo "state" (variáveis de estado), com valores
persistentes mas visíveis apenas em seu escopo;
- possibilidade de "empilhar" operadores de testes de arquivos ("-f -w
-x $arquivo" em vez de "-f $arquivo && -w _ && -x _");
- método UNIVERSAL::DOES() adicionado
- várias melhorias em formatações;
- modificadores de ordem de bytes (Little/Big Endian) para funções
pack() e unpack();
E muito mais!!!
[]s
-b
Mais detalhes sobre a lista de discussão Rio-pm