<div dir="ltr">Foi uma leitura bastante interessante e ilustrativa. Me fez lembrar que `Perl rocks`, nunca morre! exemplo de projeto FOSS saud<span style="font-family:arial,sans-serif;font-size:13px">ável e em plena atividade</span> =)<div>

<div><br></div><div>Breno, Muito Obrigado! <br></div><div><br></div><div style>( )s</div><div style>Carlos.</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/18 Ole Peter Smith <span dir="ltr"><<a href="mailto:ole.ufg@gmail.com" target="_blank">ole.ufg@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p>+1!</p>
<p>0le</p>
<p>Send via Android</p><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On May 18, 2013 7:53 PM, "Bruno Buss" <<a href="mailto:bruno.buss@gmail.com" target="_blank">bruno.buss@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr">garu++ pelo resumão + tradução do perldelta :-)<div><br></div><div><br></div><div>[ ]'s</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/18 breno <span dir="ltr"><<a href="mailto:breno@rio.pm.org" target="_blank">breno@rio.pm.org</a>></span><br>




<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">É com enorme prazer que a comunidade Perl de todo o mundo recebe a<br>
mais nova versão do Perl 5! O Perl 5.18.0 representa mais ou menos 1<br>
ano de desenvolvimento desde o 5.16.0 e contém aproximadamente 400.000<br>
linhas de mudanças entre 2.100 arquivos, feitas por 113 autores<br>
diferentes.<br>
<br>
Você poderá baixar e instalar a partir de seu mirror favorito ou em<br>
<a href="https://metacpan.org/release/RJBS/perl-5.18.0/" target="_blank">https://metacpan.org/release/RJBS/perl-5.18.0/</a><br>
<br>
Os digests SHA1 para este release são:<br>
<br>
 a09281aece16772ca676d842c1b24fb9f9f1a409  perl-5.18.0.tar.bz2<br>
 f5a97a9fa4e9d0ef9c4b313c5b778a0e76291ee2  perl-5.18.0.tar.gz<br>
<br>
Se você prefere instalar via perlbrew, aguarde o 5.18.0 estar<br>
disponível verificando a lista retornada pelo comando:<br>
<br>
% perlbrew available<br>
<br>
Depois é só instalar e usar!<br>
<br>
% perlbrew install perl-5.18.0<br>
% perlbrew switch perl-5.18.0<br>
<br>
<br>
Confira as principais novidades:<br>
<br>
<br>
Novo mecanismo para features experimentais!<br>
--------------------------------------------------------------<br>
<br>
Inúmeros sistemas críticos dependem fortemente de Perl em todo o<br>
mundo. Por isso, sempre há uma grande preocupação com<br>
retrocompatibilidade no desenvolvimento da linguagem Perl, o que é bom<br>
mas exige cuidado extremo ao adicionar uma nova feature. Para evitar a<br>
sensação de conservadorismo excessivo e ao mesmo tempo permitir o<br>
desenvolvimento e exploração de novas features experimentais que<br>
elevem a qualidade e recursos da linguagem ainda mais, foi criado o<br>
seguinte mecanismo:<br>
<br>
- features experimentais serão ativadas pelo pragma "use feature<br>
nome_da_feature"<br>
- features experimentais vão sempre gerar warnings avisando que a<br>
feature é, bem, experimental - a menos que o desenvolvedor<br>
deliberadamente desative os warnings. Assim, ao dizer "no warnings<br>
'experimental::nome_da_feature'", o desenvolvedor está assumindo<br>
responsabilidade por quaisquer problemas devido a mudanças futuras na<br>
feature, ou mesmo em sua remoção completa.<br>
<br>
Como algumas features atuais (por exemplo, "~~" e "my $_") agora<br>
emitem warnings no 5.18.0 avisando explicitamente sobre isso, você<br>
pode querer desativar os warnings em versões anteriores do Perl (caso<br>
esteja escrevendo um módulo que usa a feature experimental, por<br>
exemplo). Como a categoria 'experimental' não existe em versões<br>
anteriores, vc pode fazer isso usando o pragma 'if':<br>
<br>
no if $] >= 5.018, 'warnings', 'experimental::nome_da_feature';<br>
<br>
Consulte <a href="https://metacpan.org/module/perlexperiment" target="_blank">https://metacpan.org/module/perlexperiment</a> para saber mais<br>
sobre quais as features marcadas como experimentais.<br>
<br>
<br>
Mudança completa na implementação dos hashes<br>
--------------------------------------------------------------------<br>
<br>
=> A semente usada pela função de hash do Perl agora é aleatória. Isso<br>
significa que a ordem das chaves e valores de um hash retornadas por<br>
keys(), values() e each() vão ser diferentes a cada execução do seu<br>
programa. Isso já acontecia antes, porém de forma mais sutil. Agora<br>
acontecerá em cada execução. Como nas versões anteriores, para<br>
garantir a ordem, basta usar sort(). A linguagem continua garantindo<br>
que, independente da ordem, ela será a mesma para todas as funções<br>
acima. Ou seja, o idioma relativamente comum:<br>
<br>
my @chaves = keys %hash;<br>
my @valores = values %hash;<br>
<br>
ainda é garantido de funcionar, já que a ordem, embora aleatória entre<br>
execuções, será a mesma tanto para o keys() quanto para o values().<br>
<br>
A idéia dessa mudança é expor bugs sutis mais claramente (já que a<br>
linguagem nunca garantiu a ordem) e tornar os hashes do perl mais<br>
robustos a ataques de complexidade algorítmica. Portanto, caso vc<br>
tenha problemas com essa mudança, corrija seu código! Se precisar por<br>
algum motivo qualquer manter o modelo anterior (que trocava a ordem<br>
apenas quando o tamanho do bucket de hash mudava), basta definir a<br>
variável de ambiente PERL_PERTURB_KEYS para o valor "1", mas isso é<br>
inseguro e não recomendado.<br>
<br>
=> Foi adicionado suporte a diferentes funções de hash, e a função<br>
padrão passou a ser a "ONE_AT_A_TIME_HARD". É possível escolher sua<br>
própria função de hash ao compilar o perl, de acordo com seu gosto e<br>
necessidades de segurança e desempenho.<br>
<br>
<br>
Suporte a Unicode 6.2!<br>
-------------------------------<br>
<br>
Para saber as diferenças entre o Unicode 6.1 e esse, veja<br>
<a href="http://www.unicode.org/versions/Unicode6.2.0" target="_blank">http://www.unicode.org/versions/Unicode6.2.0</a><br>
<br>
Uma outra característica interessante é que, embora o padrão agora<br>
seja o Unicode 6.2, você pode recompilar o perl para usar qualquer<br>
versão do Unicode (com seus problemas associados, lógico).<br>
<br>
<br>
Subrotinas léxicas (experimental)<br>
---------------------------------------------<br>
<br>
use 5.18.0;<br>
no warnings 'experimental::lexical_subs';<br>
use feature 'lexical_subs';<br>
<br>
my sub teste { ... };  # yup! "our sub" e "state sub" também funcionam!<br>
<br>
Essa feature permite criar subrotinas visíveis somente dentro do<br>
escopo léxico em que são declaradas. A função é criada sempre que o<br>
bloco de código é acessado.<br>
<br>
Para mais informações, vejam:<br>
<a href="https://metacpan.org/module/perlsub#Lexical-Subroutines" target="_blank">https://metacpan.org/module/perlsub#Lexical-Subroutines</a><br>
<br>
<br>
Módulos que vão sair do core em versões futuras do perl<br>
----------------------------------------------------------------------------<br>
<br>
Os módulos à seguir serão removidos da distribuição core do perl em<br>
versões futuras e devem ser instaladas via CPAN. As versões dentro do<br>
core vão emitir um warning da categoria 'deprecated'. Para<br>
silenciá-los, basta instalar a versão do CPAN :)<br>
<br>
Archive::Extract, B::Lint, B::Lint::Debug, CPANPLUS (e sub-módulos),<br>
Devel::InnerPackage, encoding, Log::Message (e sub-módulos),<br>
Module::Pluggable, Module::Pluggable::Object, Object::Accessor,<br>
Pod::LaTeX, Term::UI, Term::UI::History<br>
<br>
<br>
Melhorias de desempenho<br>
------------------------------------<br>
<br>
=> declarações de variáveis léxicas em listas como "my ($x, $y)" foram<br>
otimizadas para serem realizadas em apenas uma operação, tornando-as<br>
mais rápidas do que declarações separadas;<br>
<br>
=> pack() com argumentos constantes está mais rápido;<br>
<br>
=> expressões regulares casando com propriedades Unicode como \X estão<br>
de 35% a 40% mais rápidas;<br>
<br>
=> otimização de hashes em contexto booleano foi extendida para<br>
contemplar também "scalar(%hash)", "%hash ? ... : ..." e "sub { %hash<br>
|| ... }<br>
<br>
=> testes em arquivos são levemente mais eficientes;<br>
<br>
<br>
Outras<br>
----------<br>
<br>
Documentação atualizada, novas mensagens de "diagnostics", mais opções<br>
de compilação, melhor estruturação interna de diversos componentes.<br>
Ah, e um *MONTE* de bugfixes! :D<br>
<br>
Para ver mais detalhes sobre as mudanças, é só acessar o arquivo<br>
"perldelta.pod", disponível dentro da distribuição ou em<br>
<a href="https://metacpan.org/module/RJBS/perl-5.18.0/pod/perldelta.pod" target="_blank">https://metacpan.org/module/RJBS/perl-5.18.0/pod/perldelta.pod</a><br>
<br>
<br>
Obituário<br>
------------<br>
<br>
Hojung Yoon (AMORETTE), 24 anos, de Seul na Coréia do Sul, seguiu para<br>
seu longo descanso no dia 8 de Maio de 2013. Ele era um jovem e<br>
brilhante hacker Perl 5 & 6 e um dedicado membro do Seoul.pm. Ele<br>
programava Perl, falava Perl, comia Perl, e amava Perl. Nós<br>
acreditamos que ele ainda está programando em Perl com seu laptop IBM<br>
quebrado em algum lugar. Vamos sentir sua falta.<br>
<br>
<br>
Agradecimentos<br>
----------------------<br>
<br>
A linguagem Perl continua florescendo em sua terceira década graças a<br>
uma comunidade vibrante de usuários e desenvolvedores (sim, você!<br>
Obrigado!)<br>
<br>
Os seguintes desenvolvedores são conhecidos por terem contribuido com<br>
as melhorias que que tornaram o Perl 5.18.0:<br>
<br>
Aaron Crane, Aaron Trevena, Abhijit Menon-Sen, Adrian M. Enache, Alan<br>
Haggai Alavi, Alexandr Ciornii, Andrew Tam, Andy Dougherty, Anton<br>
Nikishaev, Aristotle Pagaltzis, Augustina Blair, Bob Ernst, Brad<br>
Gilbert, Breno G. de Oliveira, Brian Carlson, Brian Fraser, Charlie<br>
Gonzalez, Chip Salzenberg, Chris 'BinGOs' Williams, Christian Hansen,<br>
Colin Kuskie, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan,<br>
Daniel Perrett, Darin McBride, Dave Rolsky, David Golden, David<br>
Leadbeater, David Mitchell, David Nicol, Dominic Hargreaves, E.<br>
Choroba, Eric Brine, Evan Miller, Father Chrysostomos, Florian<br>
Ragwitz, François Perrad, George Greer, Goro Fuji, H.Merijn Brand,<br>
Herbert Breunung, Hugo van der Sanden, Igor Zaytsev, James E Keenan,<br>
Jan Dubois, Jasmine Ahuja, Jerry D. Hedden, Jess Robinson, Jesse<br>
Luehrs, Joaquin Ferrero, Joel Berger, John Goodyear, John Peacock,<br>
Karen Etheridge, Karl Williamson, Karthik Rajagopalan, Kent Fredric,<br>
Leon Timmermans, Lucas Holt, Lukas Mai, Marcus Holland-Moritz, Markus<br>
Jansen, Martin Hasch, Matthew Horsfall, Max Maischein, Michael G<br>
Schwern, Michael Schroeder, Moritz Lenz, Nicholas Clark, Niko Tyni,<br>
Oleg Nesterov, Patrik Hägglund, Paul Green, Paul Johnson, Paul<br>
Marquess, Peter Martini, Rafael Garcia-Suarez, Reini Urban, Renee<br>
Baecker, Rhesa Rozendaal, Ricardo Signes, Robin Barker, Ronald J.<br>
Kimball, Ruslan Zakirov, Salvador Fandiño, Sawyer X, Scott Lanning,<br>
Sergey Alekseev, Shawn M Moore, Shirakata Kentaro, Shlomi Fish,<br>
Sisyphus, Smylers, Steffen Müller, Steve Hay, Steve Peters, Steven<br>
Schubiger, Sullivan Beck, Sven Strickroth, Sébastien Aperghis-Tramoni,<br>
Thomas Sibley, Tobias Leich, Tom Wyant, Tony Cook, Vadim Konovalov,<br>
Vincent Pit, Volker Schatz, Walt Mankowski, Yves Orton, Zefram.<br>
<br>
Que tal entrar nessa lista também nas versões futuras do Perl? É mais<br>
fácil do que você pensa, e sua contribuição será muito bem vinda.<br>
Mesmo que você esteja começando com Perl e não saiba nada de C,<br>
provavelmente há um tíquete que você pode ajudar! Veja o vídeo em<br>
<a href="http://www.videolog.tv/video.php?id=959787" target="_blank">http://www.videolog.tv/video.php?id=959787</a> e faça seu primeiro patch<br>
hoje!<br>
<br>
<br>
Boa diversão!<br>
<br>
[]s<br>
<br>
-b<br>
_______________________________________________<br>
Brasil-PM mailing list<br>
<a href="mailto:Brasil-PM@pm.org" target="_blank">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><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Bruno C. Buss<br><a href="http://www.brunobuss.net" target="_blank">http://www.brunobuss.net</a>
</div>
<br>_______________________________________________<br>
Brasil-PM mailing list<br>
<a href="mailto:Brasil-PM@pm.org" target="_blank">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><br></blockquote></div>
</div></div><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><br></blockquote></div><br></div>