<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><div>Uma vez tinha uma rotina de trim aqui na empresa,</div><div>pra fazer trim de strings enormes (aka length = 16000+) </div>

<div>que fazendo </div><div>$string =~ s/(^\s+)(\s+$)//g;</div><div>demorava 1 segundo mais ou menos,</div><div>e </div><div>$string =~ s/^\s+//;</div><div>$string =~ s/\s+$//;</div><div>demorou menos de 0.2 pra limpar 1000 linhas.</div>

<div><br></div><div>Bom, isso foi num pentil III.</div><div><br></div><div>Eu tambem uso linux,</div><div>nunca tive problema com \r\n, pois sempre uso o trim (exceto no dia que descobri que ele <span class="Apple-style-span" style="background-color: rgb(255, 0, 0);">era</span> estava lento, mas como estava sem tempo naquele exato momento fiz o exemplo abaixo:)</div>

<div>$line = &lt;&gt;;</div><div><br></div><div>chomp($line);</div><div>chomp($line) if (substr($line, 1, -1) eq &quot;\r&quot;);</div><div><br></div><div>Nao sei se eh mais rapido que as 2 expressoes regulares, pois nao testei, mas é MUITO mais rapido que a regular expression com global.</div>

<div><br></div></span><br><div class="gmail_quote">2010/7/23 Luis Motta Campos <span dir="ltr">&lt;<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On 07/22/2010 04:11 PM, Otavio Pereira wrote:<br>
&gt; Aproveitando o e-mail porquê<br>
&gt;<br>
&gt;     $x =~ s/0x0d//g;<br>
&gt;<br>
&gt; não funciona?<br>
&gt;<br>
&gt; Alguma sugestão?<br>
<br>
</div>Sugiro que você RTFM(*) &quot;perlre&quot;, onde se explica como usar notação<br>
hexadecimal em expressões regulares.<br>
<br>
A minha implementação da sua expressão seria mais como<br>
<br>
s{\x0D}{}g<br>
<br>
Ou a ainda mais legível<br>
<br>
s{\r}{}g<br>
<br>
O que você está fazendo de errado é negando que você tem um problema de<br>
arquitetura nos seus programas: você lê e processa arquivos com duas<br>
codificações diferentes (linhas terminadas com &quot;\r\n&quot; ou &quot;\n&quot; -- padrão<br>
&quot;Windows&quot; ou &quot;unix&quot;), mas não faz nada explícito para detectar o padrão<br>
e se comportar de acordo no seu programa. Você poderia começar assumindo<br>
que todas as linhas que você ler de um mesmo arquivo vão estar no mesmo<br>
formato, e partir daí.<br>
<br>
Eu recomendo construir um Iterador flexível o bastante para repetir o<br>
padrão para todas as linhas do arquivo, baseado em Iterator::IO::ifile,<br>
e transformar isso numa biblioteca que você pode até subir para o CPAN.<br>
<br>
Putamplexos<br>
<font color="#888888">--<br>
Luis Motta Campos is a DBA,<br>
Perl Programmer, foodie and photographer.<br>
<br>
(*) Querendo dizer &quot;Read The FRIENDLY Manuals&quot;<br>
</font><div><div></div><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Renato Santos<br><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>