<span style="font-family: courier new,monospace;">Hummm posso tentar entender o quê rola neste código ...</span><br style="font-family: courier new,monospace;"><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&nbsp; __PERL__&nbsp;&nbsp;&nbsp;</blockquote><div><span style="font-family: courier new,monospace;">... bom, aqui você coloca todo o conteúdo de um arquivo na variável, pouco recomendável para arquivos grandes, no meu teste o &#39;return &lt;$fh&gt;;&#39; retornava uma mensagem de erro, deixei apenas o &lt;$fh&gt; e funcionou, acho que o Damian Conway não aprovaria esta parte do código ...
</span><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> &nbsp; my $text = do {<br> &nbsp; &nbsp; local $/ = undef;<br> &nbsp; &nbsp; open my $fh, &#39;/path/to/file.txt&#39;
<br> &nbsp; &nbsp; &nbsp; or die $!;<br> &nbsp; &nbsp; return &lt;$fh&gt;;<br> &nbsp; &nbsp; # nao precisa dizer close($fh)<br> &nbsp; };<br><br> &nbsp; my %hash;<br><br> &nbsp; study $text; # opa! uma cerveja para quem souber o que faz isso!<br></blockquote><div><span style="font-family: courier new,monospace;">
... você esta ficando famoso em apostar cerveja e não pagar, será que teremos que ir à Europa cobrar ?!?! Pelo o quê eu compreendi na documentação, aqui você pede para o engine do regex avaliar a possibilidade de criar um índice com os matches desejado, que poderá resultar em ganho de performance. Eu não conhecia este cara, mas me parece que isto poderia melhorar bastante o desempenho de parse dos meus longos arquivos de logs, carregando blocos do log e efetuando o parse como vc está mostrando aqui ...
</span><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br> &nbsp; while ( my ( $campo, $que, $eu, $quero ) =</blockquote><div><span style="font-family: courier new,monospace;">
... aqui eu acho que ficaria melhor receber num array &#39;while ( my @campos_que_eu_quero = &#39; ...</span> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br> &nbsp; &nbsp; $text =~ m{ $REGEXP_AQUI }mxs ){<br><br> &nbsp; &nbsp; # Feio, muito feio! Alguem tem uma ideia melhor?</blockquote><div><span style="font-family: courier new,monospace;">... com certeza, como pode um &#39;santo&#39; escrever coisas deste tipo ? Mas antes me explica uma coisa, o que é &#39;$$_&#39; ? Uma melhor alternativa seria &#39;for (@campos_que_eu_quero) { push @{ $hash{ $_ } }, $$_ }
<span style="font-family: courier new,monospace;"> }&#39; ...</span><br></span></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br> &nbsp; &nbsp; map { push @{ $hash{ $_ } }, $$_ }, qw( campo que eu quero );
<br><br> &nbsp; }<br><br> &nbsp; undef $text;<br> &nbsp; __END__<br><br> &nbsp; ATENCAO: Eu escrevi isso de cabeca, por esporte e por prazer. Peco<br>que uma boa alma teste o meu idioma e veja se isso funciona mesmo.<br><br> &nbsp; Eu respondo perguntas para quem tiver problemas para compreender o
<br>codigo.<br><br> &nbsp; Espero que isso ajude.<br><div><div></div><div class="Wj3C7c"> &nbsp; Putamplexos!<br>--<br>Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,<br>Perl fanatic evangelist, and amateur {cook, photographer}
<br>_______________________________________________<br>SaoPaulo-pm mailing list<br><a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm
</a><br><br></div></div></blockquote></div><br><br clear="all"><br>-- <br>&quot;o animal satisfeito dorme&quot;. - Guimarães Rosa