Outra grande importacia seria se o HASH %- gravasse os valores das RegExp recursivas como por exemplo separar numeros e palavras:<br><br>$var =~ /(?&lt;numeros&gt;\d+)(?&lt;palavras\w+)/g;<br><br>print @{$-{numeros}};<br>print @{$-{palavras}}; 
<br><br>Infelismente isso nao acontece, quando vi que o valor da chave par o HASH %- era uma referencia de ARRAY eu cheguei a pensar que funcionasse assim :-) mas nao funciona.<br><br><br><br><div><span class="gmail_quote">
Em 19/11/07, <b class="gmail_sendername">Lucas Mateus</b> &lt;<a href="mailto:lucasmateus.oliveira@gmail.com">lucasmateus.oliveira@gmail.com</a>&gt; escreveu:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Acho que esse definede-or &quot;//&quot; vai causar confusão ao menos no começo.<br><br>my $var = 0;<br><br>$var //= 1;<br>print $var;&nbsp; # resultado 0<br><br>$var ||= 1; <br>print $var; # resultado 1<br><br><br><br><br>my $var;
<br>$var //= 1;<br>
print $var;&nbsp; # resultado 1<br>
<br>
$var ||= 1; <br>
print $var; # resultado 1<div><span class="e" id="q_1165a94fa09819f4_1"><br><br><br><br><br><br><div><span class="gmail_quote">Em 19/11/07, <b class="gmail_sendername">Lucas Mateus</b> &lt;<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
lucasmateus.oliveira@gmail.com
</a>&gt; escreveu:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">E agora teremos SWITCH <br><br><pre> given ($foo) {<br>        when (/^abc/) { $abc = 1; }
<br><br>        when (/^def/) { $def = 1; }<br>        when (/^xyz/) { $xyz = 1; }<br>        default { $nothing = 1; }<br><br>    }</pre>
<br><br>Algumas mudanças com RegExp recursiva: nasce dois novos HASHES %+ e %-<br><br><br><br><div><span class="gmail_quote">Em 19/11/07, <b class="gmail_sendername">Lucas Mateus</b> &lt;<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


lucasmateus.oliveira@gmail.com</a>&gt; escreveu:</span><div><span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Grato cara, vo esparramar essa informação aki =) mais uma vez obrigado !!!
<br><br><br><br><div><span class="gmail_quote">Em 19/11/07, <b class="gmail_sendername">Adriano Ferreira</b> &lt;<a href="mailto:a.r.ferreira@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">



a.r.ferreira@gmail.com</a>&gt; escreveu:</span><div><span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Entre as novidades do Perl 5.10 (cujo release candidate 1 chegou ao
<br>CPAN neste sábado -<br><a href="http://search.cpan.org/%7Ergarcia/perl-5.10.0-RC1/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/</a>), temos um novo
<br>operador. É o operador &#39;//&#39; conhecido como operador &#39;default&#39; ou
<br>&#39;defined-or&#39;.<br><br>O propósito deste operador é muito similar ao operador &#39;||&#39; (que<br>corresponde a um OU) com algumas diferenças sutis e úteis.<br><br>O operador &#39;||&#39; é avaliado assim<br><br>



exp1 || exp2 = exp1,&nbsp;&nbsp;&nbsp;&nbsp;se o resultado da exp1 é verdadeiro<br>exp1 || exp2 = exp2,&nbsp;&nbsp;&nbsp;&nbsp;caso contrário<br><br>Como este operador existe há muito tempo no Perl é muito comum que ele<br>seja usado quando é desejável que uma expressão tenha um certo valor
<br>(ou &#39;default&#39;) se ele não for especificado explicitamente.<br><br>Por exemplo,<br><br>sub rule {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $n = $_[0];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $char = $_[1] || &#39;-&#39;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $char x $n;<br>}<br><br>constrói uma régua de $n caracteres com o caracter especificado ou &#39;-&#39;.
<br><br>Assim,<br><br>rule(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retorna&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;---&#39;<br>rule(4,&#39;+&#39;)&nbsp;&nbsp;retorna&nbsp;&nbsp;&nbsp;&nbsp; &#39;++++&#39;<br><br>No entanto,<br><br>rule(5, 0)&nbsp;&nbsp;&nbsp;&nbsp;retorna&nbsp;&nbsp; &#39;-----&#39;<br><br>porque 0 é *falso* (assim como os outros valores de falso: &#39;&#39; - o
<br>string vazio, 0 - zero inteiro, 0.0 - zero em ponto flutuante, undef).<br><br>Antes, a solução era trocar a expressão simples &quot; $_[1] || &#39;-&#39; &quot; por<br>um mais complicada e precisa:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;my $char = defined $_[1] ? $_[1] || &#39;-&#39;; # atenção ao jogo para
<br>evitar os efeitos colaterais do shift<br><br>Mas a semântica do operador &#39;//&#39; é exatamente esta:<br><br>exp1 || exp2 = exp1,&nbsp;&nbsp;&nbsp;&nbsp;se o resultado da exp1 é definido (não é &#39;undef&#39;)<br>exp1 || exp2 = exp2,&nbsp;&nbsp;&nbsp;&nbsp;caso contrário
<br><br>Então a expressão corrigida fica mais concisa e elegante:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;my $char = $_[1] // &#39;-&#39;;<br><br>Assim, para inúmeras aplicações que antes empregariam o &#39;||&#39; com o<br>temor de que outros valores de falso levassem a surpresas, a melhor
<br>alternativa é agora o uso do &#39;defined-or&#39;.<br><br>----<br><br>Peço aos assinantes desta lista que divulguem esta lista. Ela pode (e<br>deve) se tornar um lugar para trocar experiências sobre a linguagem<br>Perl e a programação com ela. A audiência a ser atingida é tão variada
<br>quanto se puder pensar: quem é curioso com programação, quem está<br>iniciando com Perl, quem já sabe muito e quer compartilhar. Todos são<br>bem vindos. Eu gostaria muito também que a participação de quem mora<br>no Triângulo Mineiro aumentasse e formássemos um grupo interessado e
<br>familiarizado com a linguagem Perl (que é ótima para fazer o que você<br>precisa -- e se chegarem perto o bastante para ver, verão que não é só<br>propaganda).<br><br>Saudações,<br>Adriano Ferreira<br>_______________________________________________
<br>Triangulo-pm mailing list<br><a href="mailto:Triangulo-pm@pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Triangulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/triangulo-pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


http://mail.pm.org/mailman/listinfo/triangulo-pm</a><br><a href="http://mail.pm.org/pipermail/triangulo-pm/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://mail.pm.org/pipermail/triangulo-pm/</a><br></blockquote></span></div></div><br>
</blockquote></span></div></div><br>
</blockquote></div><br>
</span></div></blockquote></div><br>