[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