Tenho em mente que o <div>=()= </div><div>ou mais formatado:</div><div>$var = () = @array</div><div>Faz com que todo o conteudo do @array seja jogado nas variaveis undef,undef,... e </div><div>quando diz que um scalar = array, ele recebe o valor dos elementos da array. </div>

<font class="Apple-style-span" color="#CC0000">Me precipito a dizer que, como o perl não esta com strict, quando você faz:<br>$var = () = $ref_array<br>o perl lê o $ref_array como array e joga pro (), que por sua vez é uma array verdadeira, e joga o valor de quantidade no $var, pois se fosse $var = $ref_array iria receber a associação</font><br>

<div><br></div><div><font class="Apple-style-span" color="#006600">Lendo melhor, lembrei que expressões regulares retornam listas dos groups.</font></div><div><br></div><div><br></div><div>--------</div><div><br></div><div>

Uma coisa que usos as vezes, em scripts mesmo é:</div><div><br></div><div>$string = &quot;231 bla bla bla&quot;;</div><div><br></div><div>$num = $string =~ /(\d+)/ &amp;&amp; $1;</div><div><br></div><div>Assim, quando há match, o valor ja vai direto pro $num, mas tambem pode ser escrito assim:</div>

<div><br></div><div>($num) = $string =~ /(\d+)/;</div><div><br></div><div>Agora to pensando porque faço com &amp;&amp; as vezes....</div><div><br></div><div>&lt;intervalo de alguns segundos...&gt;</div><div><br></div><div>

Ah, lembrei:</div><div><br></div><div>$hashref = {</div><div>    some_key =&gt; $string =~ /(\d+)/ &amp;&amp; $1</div><div>}</div><div><br></div><div><br></div><div><br><div class="gmail_quote">2010/10/5 Stanislaw Pusep <span dir="ltr">&lt;<a href="mailto:creaktive@gmail.com">creaktive@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Desde que uso o Bash, tenho uma grande tara por &quot;one-liners&quot;; aquelas &quot;linhas de comando gigantescas que são programas&quot;. Como o Perl é extremamente versátil para funcionar via pipe, os meus &quot;one-liners&quot; gradualmente cresceram a ponto de ocuparem várias linhas, devido ao limite natural da largura da tela :)<br>



Seguem alguns snippets da minha &quot;coleção&quot;:<br><br><br><code></code>perl &#39;-F/\s+/&#39; -lane &#39;$s += $F[9] }{ print $s&quot;&#39; access.log<br><br>Imprime a somatória dos tamanhos dos responses HTTP (10-a coluna no formato CLF do Apache). O atalho é o &quot;}{&quot;, que fecha o bloco &quot;while(&lt;&gt;){...}&quot; aberto pelo parâmetro &quot;-n&quot;. Por extenso, o equivalente seria:<br>



perl -le &#39;while (&lt;&gt;) { @F = split /\s+/; $s += $F[9] }; print &quot;$s&#39; access.log<br>
<br><br>perl -e &#39;$x = 10; while ($x) { $x= ~-$x; print &quot;$x\n&quot; }&#39;<br><br>Código alternativo para contagens regressivas.<br>&quot;~-$x&quot; decrementa $x desde que $x seja diferente de 0. Por extenso, seria &quot;(~(-$x))&quot;.<br>



<br><br>perl -le &#39;print ~~localtime&#39;<br><br>&quot;~~&quot; força o contexto escalar. No caso do &quot;localtime&quot;, que retorna array no contexto &quot;normal&quot;, porém retorna string no contexto escalar, vai retornar a data e a hora por extenso. No caso do array, retorna o seu último elemento. Me arrisco a dizer que equivale ao velho e bom &#39;scalar&#39;.<br>



<br><br>perl -lne &#39;$s+ =()= /\S+/g }{ print $s&#39;<br><br>&quot;=()=&quot;, sucedido de um array, retorna o número de elementos no mesmo. Por extenso, são tantos parenteses que parece o Lisp; nem me arrisco a tentar entender :/<br>



<br><br>perl -le &#39;$x = 12345; $y = 67890; ($x!=$y)&amp;&amp;($x^=$y^=$x^=$y); print &quot;$x $y&quot;&#39;<br>BÔNUS! Isso em particular não tem utilidade nenhuma, mas é, no mínimo, curioso. Serve para dar um &quot;swap&quot; de valores (NUMÉRICOS!) das variáveis, ou seja, é equivalente a &quot;$tmp = $y; $y = $x; $x = $tmp;&quot;<br>



<br><br>Alguém mais teria alguma idiossincrasia para compartilhar? :) <br><br>
<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></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>


</div>