Detalhe besta, como quase disse o fernando, m// no contexto de lista retorna $1, $2, ..., $N,<br>porém utilizando o modificador g, retorna todas as substrings que combinaram. Depois é só<br>contar o tamanho da lista.<br><br>
E, não, eu não sabia isso de cabeça, é que eu to nesse capítulo do livro... :p<br><br>O exemplo do livro diz algo parecido com<br><br>&lt;code&gt;<div class="Ih2E3d"><br>my $string = &quot;Estou feliz, passei em Matematica Discreta I, feliz!&quot;;
<br></div>printf &quot;Apareceu %s vezes...\n&quot;, $c=@b=$string=~/feliz/g;<br><br>&lt;/code&gt;<br><br>Na verdade era mais pra &lt;code&gt; scalar( @b = $string =~ /feliz/g ); &lt;/code&gt;, que eu<br>achei longo, mas mais legível.
<br><br>Espero ter ajudado<br><br><br><br><div class="gmail_quote">On Dec 1, 2007 1:46 PM, Fernando Oliveira &lt;<a href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
o m//g em contexto de lista retorna uma lista com $1, $2, ..., $N. Mas em contexto estalar só retorna um booleano... uma solução com menor performance, mas com menos caracteres q o for, seria:<br><br>&lt;code&gt;<div class="Ih2E3d">
<br>my $string = &quot;Estou feliz, passei em Matematica Discreta I, feliz!&quot;;
<br></div>printf &quot;Apareceu %s vezes...\n&quot;, scalar($string =~ s/(feliz)/$1/g);<br>&lt;/code&gt;<br><br><div><span class="gmail_quote">Em 01/12/07, <b class="gmail_sendername">Marco A P D&#39;Andrade</b> &lt;<a href="mailto:mdacwb@gmail.com" target="_blank">

mdacwb@gmail.com</a>&gt; escreveu:</span><div><div></div><div class="Wj3C7c"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hummm...<br><br>
Posso estar enganado, mas acho que existem mais nuancias...
<br>(daqui não tenho como testar, e quero dar meu pitaco ;) )<br><br>Reforçando o contexto scalar da regex, com o argumento &quot;g&quot; já é feita<br>a pesquisa completa.<br><br>my $string = &#39;Estou feliz, passei em Matematica Discreta I, feliz!&#39;;
<br>printf &quot;Apareceu %s vezes...\n&quot;, scalar($string =~ m/feliz/g);<br><br>Se fosse utilizado um foreach, em vez do while eu não teria tanta<br>dúvida sobre o loop, pois seriam avaliados todos os elementos<br>retornados, já o while, não sei se na proxima interação ele refará a
<br>pesquisa...<br><br>Ok... devia ter testado, mas queria dar o pitaco ;)<br><br>Sds,<br>Marco Antonio<br><br>Em 01/12/07, Lorn&lt;<a href="mailto:lorn.br@gmail.com" target="_blank">lorn.br@gmail.com</a>&gt; escreveu:<br>
&gt; Você estava checando só uma vez :P precisa checar até acabar toda a frase :)
<br>&gt;<br>&gt;<br>&gt; use warnings;<br>&gt; use strict;<br>&gt;<br>&gt; my $cont;<br>&gt; my $string = &#39;Estou feliz, passei em Matematica Discreta I, feliz!&#39;;<br>&gt; &amp;aparece($string);<br>&gt;<br>&gt; sub aparece{
<br>&gt;&nbsp;&nbsp; my $frase = shift();<br>&gt;&nbsp;&nbsp; while ($string =~ m/feliz/g){<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $cont++;<br>&gt;&nbsp;&nbsp; };<br>&gt;&nbsp;&nbsp; print &quot;Feliz apareceu $cont vezes\n&quot;;<br>&gt; }<br>&gt;<br>&gt; On Dec 1, 2007 11:41 AM, gabriel lima &lt;
<a href="mailto:gabriellima333@hotmail.com" target="_blank">gabriellima333@hotmail.com</a>&gt; wrote:<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; Olá pessoal tudo bem?<br>&gt; &gt; Estava tentando criar uma sub-rotina simples apenas
<br>&gt; &gt; para estudo da linguagem Perl. Esta sub-rotina mostra
<br>&gt; &gt; quantas vezes uma palavra aparece em uma string.<br>&gt; &gt; O problema é que ela só retorna 1, ou seja, fala que<br>&gt; &gt; só acha esta palavra uma vez, mesmo tendo aparecido<br>&gt; &gt; repetida vezes na string, veja:
<br>&gt; &gt;<br>&gt; &gt; #! D:\Perl\bin\Perl.exe<br>&gt; &gt;<br>&gt; &gt; use warnings;<br>&gt; &gt; use strict;<br>&gt; &gt;<br>&gt; &gt; my $cont;<br>&gt; &gt; my $string = &#39;Estou feliz, passei em Matematica Discreta I, feliz!&#39;;
<br>&gt; &gt; &amp;aparece($string);<br>&gt; &gt;<br>&gt; &gt; sub aparece{<br>&gt; &gt;&nbsp;&nbsp; my $frase = shift();<br>&gt; &gt;&nbsp;&nbsp; $cont++ if $string =~ m/feliz/;<br>&gt; &gt;&nbsp;&nbsp; print &quot;Feliz apareceu $cont vezes\n&quot;;
<br>&gt; &gt; }<br>&gt; &gt;<br>&gt; &gt; Saída -&gt; Feliz apareceu 1 vezes<br>&gt; &gt;<br>&gt; &gt; ________________________________<br>&gt; Receba as últimas notícias do Brasil e do mundo direto no seu Messenger! É<br>

&gt; GRÁTIS! Assine já!<br>&gt; &gt; _______________________________________________<br>&gt; &gt; Rio-pm mailing list<br>&gt; &gt; <a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>&gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">

http://mail.pm.org/mailman/listinfo/rio-pm</a><br>&gt; &gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; --<br>&gt; Lindolfo &quot;Lorn&quot; Rodrigues<br>&gt; - <a href="http://www.slackwarezine.com.br" target="_blank">www.slackwarezine.com.br
</a><br>
&gt; - <a href="http://lornlab.org" target="_blank">http://lornlab.org</a><br>&gt; - <a href="http://sao-paulo.pm.org" target="_blank">http://sao-paulo.pm.org</a><br>&gt; use Catalyst;<br>&gt; _______________________________________________
<br>&gt; Rio-pm mailing list
<br>&gt; <a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>&gt; <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>&gt;<br>_______________________________________________
<br>Rio-pm mailing list<br><a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote>
</div></div></div><font color="#888888"><br><br clear="all">
<br>-- <br>[]&#39;s Fernando
</font><br>_______________________________________________<br>Rio-pm mailing list<br><a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm
</a><br></blockquote></div><br>