<p dir="ltr">garu++<br>
</p>
<div class="gmail_quote">Em 28/05/2014 02:00, "breno" <<a href="mailto:breno@rio.pm.org">breno@rio.pm.org</a>> escreveu:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Oi pessoal,<br>
<br>
é realmente uma ótima época para o Perl 5. A comunidade internacional<br>
continua cada vez mais ativa e a versão 20 que acabou de ser lançada é<br>
talvez uma das mais interessantes dos últimos tempos! Vejam algumas<br>
das novidades dessa versão:<br>
<br>
<br>
Assinaturas de subrotinas<br>
-----------------------------------<br>
<br>
Até então, para pegar os argumentos passados a uma função ou método em<br>
Perl, precisávamos manipular diretamente o @_, em código como:<br>
<br>
sub pessoa {<br>
     my ($nome, $idade) = @_;<br>
     print "oi $nome, vc tem $idade anos";<br>
}<br>
<br>
Agora podemos escrever:<br>
<br>
use feature 'signatures';<br>
<br>
sub pessoa ($nome, $idade) {<br>
    print "oi $nome, vc tem $idade anos";<br>
}<br>
<br>
podemos também garantir que nossa sub não terá argumentos:<br>
<br>
sub pessoa () {<br>
    ...<br>
}<br>
<br>
mais informações sobre essa tão esperada feature em:<br>
<a href="https://metacpan.org/pod/release/RJBS/perl-5.20.0/pod/perlsub.pod#Signatures" target="_blank">https://metacpan.org/pod/release/RJBS/perl-5.20.0/pod/perlsub.pod#Signatures</a><br>
<br>
<br>
<br>
Desreferenciamento pós-fixado<br>
------------------------------------------<br>
<br>
Até então, para desreferenciar uma variável em Perl precisávamos<br>
envolvê-la em chaves, por exemplo:<br>
<br>
@lista = @{ $ref->{nomes}[3][-1]{lista} };<br>
<br>
A versão 20 do Perl 5 agora oferece outra sintaxe, mais clara (porque<br>
não envolve as chaves extras) e intuitiva (pq segue a lógica de ação<br>
do resto do código, da esquerda para a direita). Nessa sintaxe, o<br>
mesmo código acima pode ser reescrito como:<br>
<br>
use experimental 'postderef';<br>
<br>
@lista = $ref->{nomes}[3][-1]{lista}->@*;<br>
<br>
Ou seja, basta acessar a referência desejada e adicionar uma última<br>
seta, indicando no símbolo o tipo que você vai desreferenciar, seguido<br>
de um asterisco. Podemos desreferenciar dessa forma arrays, hashes,<br>
escalares, subs e até mesmo globs!<br>
<br>
Mais detalhes em<br>
<a href="https://metacpan.org/pod/release/RJBS/perl-5.20.0/pod/perldelta.pod#Experimental-Postfix-Dereferencing" target="_blank">https://metacpan.org/pod/release/RJBS/perl-5.20.0/pod/perldelta.pod#Experimental-Postfix-Dereferencing</a><br>

<br>
<br>
<br>
Hash Slices<br>
----------------<br>
<br>
Ao manipularmos arrays, é muito comum pegar grupos de valores através de slices:<br>
<br>
@herculoides = qw( igoo tundro gloop zok gleep );<br>
@irmaos = @herculoides[2,4];<br>
<br>
Também conseguiamos fazer slices de hashes, mas só retornando valores em listas:<br>
<br>
my %dados = (<br>
    nome => 'Thaddeus "Tad" Ghostal',<br>
    apelido => 'Space Ghost',<br>
    profissao => 'Apresentador',<br>
);<br>
<br>
my ($nome, $apelido) = @dados{ 'nome', 'apelido' };<br>
<br>
Agora, no 5.20, podemos fazer hash slices completos, convertendo<br>
hashes grandes em sub-hashes! O hash slice funciona como o array<br>
slice:<br>
<br>
my %resumido = %dados{ 'nome', 'apelido' };<br>
<br>
say $resumido->{apelido};  # 'Space Ghost'<br>
<br>
<br>
<br>
Outras melhorias<br>
-----------------------<br>
<br>
* Melhor desempenho - o 5.20 está ainda mais rápido que os anteriores,<br>
com melhorias de desempenho em expressões regulares, cópia de strings,<br>
acesso a chaves de hash e muito mais!<br>
<br>
* Protótipos até então eram definidos como, por exemplo: sub lala<br>
($$). Agora podem ser escritos como atributos da sub, ou seja: sub<br>
lala :prototype($$). A forma antiga ainda é permitida.<br>
<br>
* Melhor qualidade na geração de números aleatórios, através de um<br>
gerador independente de plataforma.<br>
<br>
* Suporte a Unicode 6.3 (versão anterior suportava o 6.2).<br>
<br>
* Android adicionado como plataforma suportada - sim, o 5.20 compila<br>
para Android! Instruções em:<br>
<a href="https://github.com/Perl/perl5/blob/blead/README.android" target="_blank">https://github.com/Perl/perl5/blob/blead/README.android</a><br>
A compilação em ambientes Windows também ficou mais rápida e portátil.<br>
<br>
* E muito mais!<br>
<br>
* CGI e Module::Build (e seus módulos associados) são alguns dos<br>
módulos que estão deixando o core para torná-lo mais leve e moderno,<br>
mas ainda estão disponíveis no seu mirror favorito do CPAN.<br>
<br>
<br>
Obituário<br>
-------------<br>
<br>
A versão 20 do Perl 5 contém também uma homenagem a nossa querida<br>
Diana Rosa, falecida em maio com apenas 27 anos. Sempre muito feliz e<br>
participante ativa da comunidade de Perl Mongers do Rio de Janeiro,<br>
sua memória agora está gravada para sempre em uma das versões mais<br>
importantes da linguagem que ela tanto gostava. A mensagem está no<br>
perldelta e pode ser vista em:<br>
<a href="https://metacpan.org/pod/release/RJBS/perl-5.20.0/pod/perldelta.pod#Obituary" target="_blank">https://metacpan.org/pod/release/RJBS/perl-5.20.0/pod/perldelta.pod#Obituary</a><br>
<br>
<br>
Instalando<br>
--------------<br>
<br>
Pra quem usa perlbrew: perlbrew install perl-5.20.0<br>
<br>
Pra quem usa plenv: plenv install perl-5.20.0<br>
<br>
Difícil, não? :)<br>
<br>
<br>
Estatísticas e Agradecimentos:<br>
------------------------------------------<br>
<br>
As seguintes pessoas foram algumas das responsáveis pelo que se tornou<br>
o perl 5.20.0 (embora essa lista esteja certamente incompleta): Aaron<br>
Crane, Abhijit Menon-Sen, Abigail, Abir Viqar, Alan Haggai Alavi, Alan<br>
Hourihane, Alexander Voronov, Alexandr Ciornii, Andy Dougherty, Anno<br>
Siegel, Aristotle Pagaltzis, Arthur Axel 'fREW' Schmidt, Brad Gilbert,<br>
Brendan Byrd, Brian Childs, Brian Fraser, Brian Gottreu, Chris<br>
'BinGOs' Williams, Christian Millour, Colin Kuskie, Craig A. Berry,<br>
Dabrien 'Dabe' Murphy, Dagfinn Ilmari Mannsåker, Daniel Dragan, Darin<br>
McBride, David Golden, David Leadbeater, David Mitchell, David Nicol,<br>
David Steinbrunner, Dennis Kaarsemaker, Dominic Hargreaves, Ed Avis,<br>
Eric Brine, Evan Zacks, Father Chrysostomos, Florian Ragwitz, François<br>
Perrad, Gavin Shelley, Gideon Israel Dsouza, Gisle Aas, Graham Knop,<br>
H.Merijn Brand, Hauke D, Heiko Eissfeldt, Hiroo Hayashi, Hojung Youn,<br>
James E Keenan, Jarkko Hietaniemi, Jerry D. Hedden, Jess Robinson,<br>
Jesse Luehrs, Johan Vromans, John Gardiner Myers, John Goodyear, John<br>
P. Linderman, John Peacock, kafka, Kang-min Liu, Karen Etheridge, Karl<br>
Williamson, Keedi Kim, Kent Fredric, kevin dawson, Kevin Falcone,<br>
Kevin Ryde, Leon Timmermans, Lukas Mai, Marc Simpson, Marcel Grünauer,<br>
Marco Peereboom, Marcus Holland-Moritz, Mark Jason Dominus, Martin<br>
McGrath, Matthew Horsfall, Max Maischein, Mike Doherty, Moritz Lenz,<br>
Nathan Glenn, Nathan Trapuzzano, Neil Bowers, Neil Williams, Nicholas<br>
Clark, Niels Thykier, Niko Tyni, Olivier Mengué, Owain G. Ainsworth,<br>
Paul Green, Paul Johnson, Peter John Acklam, Peter Martini, Peter<br>
Rabbitson, Petr Písař, Philip Boulain, Philip Guenther, Piotr<br>
Roszatycki, Rafael Garcia-Suarez, Reini Urban, Reuben Thomas, Ricardo<br>
Signes, Ruslan Zakirov, Sergey Alekseev, Shirakata Kentaro, Shlomi<br>
Fish, Slaven Rezic, Smylers, Steffen Müller, Steve Hay, Sullivan Beck,<br>
Thomas Sibley, Tobias Leich, Toby Inkster, Tokuhiro Matsuno, Tom<br>
Christiansen, Tom Hukins, Tony Cook, Victor Efimov, Viktor Turskyi,<br>
Vladimir Timofeev, YAMASHINA Hio, Yves Orton, Zefram, Zsbán Ambrus,<br>
Ævar Arnfjörð Bjarmason.<br>
<br>
Perl 5.20.0 representa aproximadamente 12 meses de desenvolvimento<br>
desde o 5.18.0 e contém aproximadamente 470.000 linhas modificadas por<br>
2.900 arquivos, feitas por 124 autores diferentes. A linguagem Perl<br>
continua florescendo em sua terceira década graças a sua vibrante<br>
comunidade de desenvolvedores e usuários - e isso inclui você!<br>
Obrigado por usar Perl :)<br>
<br>
Divirtam-se!<br>
<br>
<br>
[]s<br>
<br>
-b<br>
_______________________________________________<br>
Brasil-PM mailing list<br>
<a href="mailto:Brasil-PM@pm.org">Brasil-PM@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/brasil-pm" target="_blank">http://mail.pm.org/mailman/listinfo/brasil-pm</a></blockquote></div>