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>