<div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> Lí o perlre neste ponto e fiquei mais confuso ainda... primeiro sobre o<br>> código "(?:SEEKING)?". De cara eu pensei que o "SEEKING" fosse uma palavra
<br>> reservada, mas pelo jeito não é. Esta palavra está aí para nada ? Ou está<br>> apenas tentando dar um match nesta palavra, que não existe ?<br><br>Sim, ele está tentando dar um match opcional na palavra SEEKING.
<br>A palavra precisa ser agrupada, pro quantificador ? operar sobre a<br>palavra inteira.</blockquote><div><br><span style="font-family: courier new,monospace;">Então eu posso ler o comando "s/(?:SEEKING)?/PERLqny~%|fsyx%~tz&/" da seguinte maneira :
</span><br style="font-family: courier new,monospace;"><div style="direction: ltr; font-family: courier new,monospace;">substitua o agrupamento SEEKING ou qualquer outra coisa da variável $_ para PERLqny~%|fsyx%~tz&. Eu poderia alterar isto para "s//PERLqny~%|fsyx%~tz&/" com o mesmo resultado, mas sem esta pseudo confusão, certo ?
</div></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">O uso de (?:) é exatamente igual ao uso de ():<br><br><code><br>s/use\s+(Java|Python|PHP)/Perl/g;
<br></code><br><br>Pode ser escrito assim:<br><br><code><br>s/use\s+(?:Java|Python|PHP)/Perl/g;<br></code><br><br>Isso se vc não fizer questão de saber quem foi substituido.<br><br></blockquote></div><span style="font-family: courier new,monospace;">
Interessante, agora compreendi que neste caso não tenho as informações extras fornecidas pelo regex. O cara simplesmente executa e segue em frente.<br><br>Obrigado novamente... mais uma para a minha evolução no Perl.<br><br>
Solli M. Honório<br></span>