Não... não vale não!!! a primeira linha era constante... não se pode tocar nela!!! quem grita golf faz as regras!!!<br>senão eu poderia ignorar q a saida tem q ser "apareceu N vezes e botar só <code>print s/feliz//g</code> isso não vale!
<br>Inclusive, eu acho q seria uma boa ter no site as regras do golf! o q vcs acham?!<br><br><div><span class="gmail_quote">Em 02/12/07, <b class="gmail_sendername">Gabriel Vieira</b> <<a href="mailto:gabriel.vieira@gmail.com">
gabriel.vieira@gmail.com</a>> escreveu:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">haha, 2o tempo!! =P<br><br>Bom, foi mistura do teu codigo com o do Bablos =D e se tratando de
<br>Perl Golf, vale! =D hahaha<br><br>Abraços ;D<br><br>On Dec 2, 2007 2:08 PM, Fernando Oliveira <<a href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a>> wrote:<br>> Como assim?! não pode mudar a regra no meio do jogo!!!
<br>><br>> Em 02/12/07, Gabriel Vieira <<a href="mailto:gabriel.vieira@gmail.com">gabriel.vieira@gmail.com</a> > escreveu:<br>><br>> > Pra facilitar pro Fernando<br>> > Supondo que:<br>> > $_="Estou feliz, passei em Matematica Discreta I, feliz!";
<br>> ><br>> > <code><br>> > print"apareceu ",s/feliz//g," vezes..."<br>> > </code><br>> ><br>> > On Dec 1, 2007 11:52 PM, Fernando Oliveira <<a href="mailto:fernandocorrea@gmail.com">
fernandocorrea@gmail.com</a> ><br>> wrote:<br>> > > Desculpem!!! era golf?! eu não sabia!!!<br>> > > Minha tacada!<br>> > ><br>> > > (ao invés de um perl -e, estou usando um perl -le...)
<br>> > > <code><br>> > > print"apareceu ",$string=~s/feliz//g," vezes..."'<br>> > > </code><br>> > ><br>> > ><br>> > ><br>> > > Em 01/12/07, Blabos de Blebe <
<a href="mailto:blabos@gmail.com">blabos@gmail.com</a>> escreveu:<br>> > > > Concordo.<br>> > > ><br>> > > > Eng de Software deve vir em primeiro lugar, não por mim, mas por quem<br>
> vai<br>> > > > dar manutenção no meu código depois, que poderá me chamar de elegante<br>> > > > ou porco, conforme o caso.<br>> > > ><br>> > > > Em produção eu preferiria a versão da FAQ, que aliás também é pequena
<br>> e<br>> > > > por 3 caracteres não empatou com a minha:<br>> > > ><br>> > > > <code><br>> > > > $_="Estou feliz, passei em Matematica Discreta I, feliz!";
<br>> > > > $c++while/feliz/g;print"Apareceu $c vezes...\n"<br>> > > > </code><br>> > > ><br>> > > ><br>> > > ><br>> > > ><br>> > > >
<br>> > > ><br>> > > > On Dec 1, 2007 11:02 PM, Marco A P D'Andrade <<a href="mailto:mdacwb@gmail.com">mdacwb@gmail.com</a> ><br>> wrote:<br>> > > ><br>> > > > > Gabriel,
<br>> > > > ><br>> > > > > Bem, já deu pra perceber que existe mais de uma maneira de se fazer<br>> > > > > algo, e o pessoal se empolga em descobrir alternativas.<br>> > > > >
<br>> > > > > Mas lembre-se de se concentrar em qualquer uma que seja legível para<br>> > > > > vc, e resolva o seu problema.<br>> > > > ><br>> > > > > Após algum tempo aprendendo as varias alternativas será interessante
<br>> > > > > se concentrar nas versões mais legiveis, pois versões de dificil<br>> > > > > interpretação tendem a dificultar qualquer manutenção futura (em<br>> > > > > termos de sistemas).
<br>> > > > ><br>> > > > > Sds,<br>> > > > > Marco Antonio<br>> > > > ><br>> > > > ><br>> > > > ><br>> > > > ><br>> > > > > Em 01/12/07, Blabos de Blebe<
<a href="mailto:blabos@gmail.com">blabos@gmail.com</a> > escreveu:<br>> > > > > > Breno, digamos que ao inves de $string a variavel fosse $s, vc<br>> teria<br>> > > 48.<br>> > > > > >
<br>> > > > > > Nesse caso eu apelaria para<br>> > > > > ><br>> > > > > > <code><br>> > > > > > $_="Estou feliz, passei em Matematica Discreta I, feliz!";
<br>> > > > > > $_=@_=/feliz/g;print"Apareceu $_ vezes...\n"<br>> > > > > > </code><br>> > > > > ><br>> > > > > > E descartada a primeira linha, eu teria 44.
<br>> > > > > > Tá valendo?<br>> > > > > ><br>> > > > > ><br>> > > > > ><br>> > > > > > On Dec 1, 2007 9:49 PM, breno < <a href="mailto:breno@rio.pm.org">
breno@rio.pm.org</a>> wrote:<br>> > > > > ><br>> > > > > > > Pra golfe, realmente. Mas como resposta para a pergunta do<br>> Gabriel<br>> > > > > > > (que está aprendendo Perl ainda) acho que a melhor é a que está
<br>> no<br>> > > > > > > próprio FAQ do Perl, parecida com a versão do Lorn:<br>> > > > > > ><br>> > > > > > > ------------------8<-----------------<br>
> > > > > > ><br>> > > > > > > $cont++ while $string =~ /feliz/g;<br>> > > > > > ><br>> > > > > > > ------------------8<-----------------
<br>> > > > > > ><br>> > > > > > > Agora, se estamos falando de golfe, aí vai a minha tacada!<br>> > > > > > ><br>> > > > > > > (supondo a linha anterior como: my $string = "Estou feliz,
<br>> passei em<br>> > > > > > > Matematica Discreta I, feliz!";<br>> > > > > > > e a saida como tendo que ser "apareceu X vezes..." e quebrar<br>> linha<br>> > > no
<br>> > > > > > final)<br>> > > > > > > $c=@b=$string=~/feliz/g;print"apareceu $c vezes...\n"<br>> > > > > > ><br>> > > > > > > 53 caracteres :-)
<br>> > > > > > ><br>> > > > > > > obs: redução da versão do Fernando, que aparentemente esqueceu<br>> que a<br>> > > > > > > diferença entre o print e o printf é grande :-P
<br>> > > > > > ><br>> > > > > > > []s<br>> > > > > > ><br>> > > > > > > -b<br>> > > > > > ><br>> > > > > > >
<br>> > > > > > ><br>> > > > > > ><br>> > > > > > > On Dec 1, 2007 6:31 PM, Fernando Oliveira <<br>> > > <a href="mailto:fernandocorrea@gmail.com">
fernandocorrea@gmail.com</a>><br>> > > > > > wrote:<br>> > > > > > > > sim...mas ainda tenho menos caracteres...<br>> > > > > > > ><br>> > > > > > > > Em 01/12/07, Blabos de Blebe <
<a href="mailto:blabos@gmail.com">blabos@gmail.com</a>> escreveu:<br>> > > > > > > > ><br>> > > > > > > > ><br>> > > > > > > > ><br>> > > > > > > > > Detalhe besta, como quase disse o fernando, m// no contexto
<br>> de<br>> > > lista<br>> > > > > > > > retorna $1, $2, ..., $N,<br>> > > > > > > > > porém utilizando o modificador g, retorna todas as<br>> substrings
<br>> > > que<br>> > > > > > > > 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
<br>> capítulo<br>> > > do<br>> > > > > > > > livro... :p<br>> > > > > > > > ><br>> > > > > > > > > O exemplo do livro diz algo parecido com
<br>> > > > > > > > ><br>> > > > > > > > > <code><br>> > > > > > > > ><br>> > > > > > > > > my $string = "Estou feliz, passei em Matematica Discreta I,
<br>> > > feliz!";<br>> > > > > > > > > printf "Apareceu %s vezes...\n", $c=@b=$string=~/feliz/g;<br>> > > > > > > > ><br>> > > > > > > > > </code>
<br>> > > > > > > > ><br>> > > > > > > > > Na verdade era mais pra <code> scalar( @b = $string =~<br>> /feliz/g<br>> > > );<br>> > > > > > > > </code>, que eu
<br>> > > > > > > > > achei longo, mas mais legível.<br>> > > > > > > > ><br>> > > > > > > > > Espero ter ajudado<br>> > > > > > > > >
<br>> > > > > > > > ><br>> > > > > > > > ><br>> > > > > > > > ><br>> > > > > > > > ><br>> > > > > > > > > On Dec 1, 2007 1:46 PM, Fernando Oliveira <
<br>> > > <a href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a>><br>> > > > > > > > wrote:<br>> > > > > > > > ><br>> > > > > > > > > > o m//g em contexto de lista retorna uma lista com $1, $2,
<br>> ...,<br>> > > $N.<br>> > > > > > Mas<br>> > > > > > > > em contexto estalar só retorna um booleano... uma solução com<br>> > > menor<br>> > > > > > > > performance, mas com menos caracteres q o for, seria:
<br>> > > > > > > > > ><br>> > > > > > > > > > <code><br>> > > > > > > > > ><br>> > > > > > > > > > my $string = "Estou feliz, passei em Matematica Discreta
<br>> I,<br>> > > feliz!";<br>> > > > > > > > > > printf "Apareceu %s vezes...\n", scalar($string =~<br>> > > s/(feliz)/$1/g);<br>> > > > > > > > > > </code>
<br>> > > > > > > > > ><br>> > > > > > > > > ><br>> > > > > > > > > > Em 01/12/07, Marco A P D'Andrade < <a href="mailto:mdacwb@gmail.com">
mdacwb@gmail.com</a> ><br>> > > escreveu:<br>> > > > > > > > > ><br>> > > > > > > > > ><br>> > > > > > > > > ><br>> > > > > > > > > > > Hummm...
<br>> > > > > > > > > > ><br>> > > > > > > > > > > Posso estar enganado, mas acho que existem mais<br>> nuancias...<br>> > > > > > > > > > > (daqui não tenho como testar, e quero dar meu pitaco ;)
<br>> )<br>> > > > > > > > > > ><br>> > > > > > > > > > > Reforçando o contexto scalar da regex, com o argumento<br>> "g"<br>> > > já é
<br>> > > > > > feita<br>> > > > > > > > > > > a pesquisa completa.<br>> > > > > > > > > > ><br>> > > > > > > > > > > my $string = 'Estou feliz, passei em Matematica Discreta
<br>> I,<br>> > > > > > feliz!';<br>> > > > > > > > > > > printf "Apareceu %s vezes...\n", scalar($string =~<br>> > > m/feliz/g);<br>> > > > > > > > > > >
<br>> > > > > > > > > > > Se fosse utilizado um foreach, em vez do while eu não<br>> teria<br>> > > tanta<br>> > > > > > > > > > > dúvida sobre o loop, pois seriam avaliados todos os
<br>> > > elementos<br>> > > > > > > > > > > retornados, já o while, não sei se na proxima interação<br>> ele<br>> > > refará<br>> > > > > > 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<
<a href="mailto:lorn.br@gmail.com">lorn.br@gmail.com</a>> escreveu:<br>> > > > > > > > > > > > Você estava checando só uma vez :P precisa checar até<br>> > > acabar<br>> > > > > > toda a
<br>> > > > > > > > frase :)<br>> > > > > > > > > > > ><br>> > > > > > > > > > > ><br>> > > > > > > > > > > > use warnings;
<br>> > > > > > > > > > > > use strict;<br>> > > > > > > > > > > ><br>> > > > > > > > > > > > my $cont;<br>> > > > > > > > > > > > my $string = 'Estou feliz, passei em Matematica
<br>> Discreta<br>> > > I,<br>> > > > > > feliz!';<br>> > > > > > > > > > > > &aparece($string);<br>> > > > > > > > > > > >
<br>> > > > > > > > > > > > sub aparece{<br>> > > > > > > > > > > > my $frase = shift();<br>> > > > > > > > > > > > while ($string =~ m/feliz/g){
<br>> > > > > > > > > > > > $cont++;<br>> > > > > > > > > > > > };<br>> > > > > > > > > > > > print "Feliz apareceu $cont vezes\n";
<br>> > > > > > > > > > > > }<br>> > > > > > > > > > > ><br>> > > > > > > > > > > > On Dec 1, 2007 11:41 AM, gabriel lima <
<br>> > > > > > <a href="mailto:gabriellima333@hotmail.com">gabriellima333@hotmail.com</a>><br>> > > > > > > > wrote:<br>> > > > > > > > > > > > >
<br>> > > > > > > > > > > > ><br>> > > > > > > > > > > > > Olá pessoal tudo bem?<br>> > > > > > > > > > > > > Estava tentando criar uma sub-rotina simples apenas
<br>> > > > > > > > > > > > > para estudo da linguagem Perl. Esta sub-rotina<br>> mostra<br>> > > > > > > > > > > > > quantas vezes uma palavra aparece em uma string.
<br>> > > > > > > > > > > > > O problema é que ela só retorna 1, ou seja, fala que<br>> > > > > > > > > > > > > só acha esta palavra uma vez, mesmo tendo aparecido
<br>> > > > > > > > > > > > > repetida vezes na string, veja:<br>> > > > > > > > > > > > ><br>> > > > > > > > > > > > > #! D:\Perl\bin\Perl.exe
<br>> > > > > > > > > > > > ><br>> > > > > > > > > > > > > use warnings;<br>> > > > > > > > > > > > > use strict;
<br>> > > > > > > > > > > > ><br>> > > > > > > > > > > > > my $cont;<br>> > > > > > > > > > > > > my $string = 'Estou feliz, passei em Matematica
<br>> Discreta<br>> > > I,<br>> > > > > > > > feliz!';<br>> > > > > > > > > > > > > &aparece($string);<br>> > > > > > > > > > > > >
<br>> > > > > > > > > > > > > sub aparece{<br>> > > > > > > > > > > > > my $frase = shift();<br>> > > > > > > > > > > > > $cont++ if $string =~ m/feliz/;
<br>> > > > > > > > > > > > > print "Feliz apareceu $cont vezes\n";<br>> > > > > > > > > > > > > }<br>> > > > > > > > > > > > >
<br>> > > > > > > > > > > > > Saída -> Feliz apareceu 1 vezes<br>> > > > > > > > > > > > ><br>> > > > > > > > > > > > > ________________________________
<br>> > > > > > > > > > > > Receba as últimas notícias do Brasil e do mundo direto<br>> no<br>> > > seu<br>> > > > > > > > Messenger! É<br>> > > > > > > > > > > > GRÁTIS! Assine já!
<br>> > > > > > > > > > > > ><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">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > > > > > > > > > ><br>> > > > > > > > > > > ><br>> > > > > > > > > > > >
<br>> > > > > > > > > > > ><br>> > > > > > > > > > > > --<br>> > > > > > > > > > > > Lindolfo "Lorn" Rodrigues
<br>> > > > > > > > > > > > - <a href="http://www.slackwarezine.com.br">www.slackwarezine.com.br</a><br>> > > > > > > > > > > > - <a href="http://lornlab.org">
http://lornlab.org</a><br>> > > > > > > > > > > > - <a href="http://sao-paulo.pm.org">http://sao-paulo.pm.org</a><br>> > > > > > > > > > > > use Catalyst;
<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">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > > > > > > > > >
<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">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > > > > > > > >
<br>> > > > > > > > > ><br>> > > > > > > > > ><br>> > > > > > > > > ><br>> > > > > > > > > > --<br>> > > > > > > > > > []'s Fernando
<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">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > > > > > > >
<br>> > > > > > > > ><br>> > > > > > > > ><br>> > > > > > > > > _______________________________________________<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">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > > > > > ><br>> > > > > > > ><br>> > > > > > > ><br>> > > > > > > >
<br>> > > > > > > > --<br>> > > > > > > > []'s Fernando<br>> > > > > > > > _______________________________________________<br>> > > > > > >
<br>> > > > > > ><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">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > > > > ><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">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > > > ><br>> > > > > ><br>> > > > > ><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">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > > ><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">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > > ><br>> > > >
<br>> > > ><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">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > > ><br>> > ><br>> > ><br>> > ><br>> > > --<br>> > > []'s Fernando
<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">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> > ><br>> ><br>> ><br>> ><br>> > --<br>> > Gabriel Vieira<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">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>> ><br>><br>><br>><br>> --
<br>> []'s Fernando<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">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br>><br><br><br><br>--<br>Gabriel Vieira<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">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>[]'s Fernando