ô do cabelo, td bão?<br><br>a direfença dos or/and/etc para || &amp;&amp; ... é a precedência. aqui vai um pedacinho significativo da tabela:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;&amp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ||<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nonassoc&nbsp;&nbsp;&nbsp; ..&nbsp; ...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; right&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ?:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; right&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = += -= *= etc.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , =&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nonassoc&nbsp;&nbsp;&nbsp; list operators (rightward)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; right&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or xor<br>
<br>note que os || &amp;&amp; têm precedência MAIOR que a atribuição, e os outros não.. isso dá uma bela diferença ;-)<br><br>ET? Campinas? o_O Phone home? rsrs<br><br>[]s<br>Russian<br><br><br><div class="gmail_quote">2008/6/11 André Garcia Carneiro &lt;<a href="mailto:andre.garcia.carneir@terra.com.br">andre.garcia.carneir@terra.com.br</a>&gt;:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">---------- Cabeçalho original -----------<br>
<br>
De: saopaulo-pm-bounces+andre.garcia.carneir=<a href="http://terra.com.br" target="_blank">terra.com.br</a>@<a href="http://pm.org" target="_blank">pm.org</a><br>
Para: <a href="mailto:saopaulo-pm@mail.pm.org">saopaulo-pm@mail.pm.org</a><br>
Cópia:<br>
</div>Data: Tue, 10 Jun 2008 23:01:13 -0300<br>
Assunto: Re: [SP-pm] Desculpa a lista<br>
<div class="Ih2E3d"><br>
&gt;<br>
&gt;<br>
&gt; Mas, o livro então que está me confundindo olha só esse programa, ( jogo ) que eu aprendi fazer com o livro:<br>
<br>
</div>Que livro? Se for o que você mencionou, jogue fora.<br>
<br>
&gt;<br>
&gt; #!/usr/bin/perl<br>
<br>
Cadê o &#39;use strict;&#39;?<br>
<div class="Ih2E3d"><br>
&gt; $resultado = soma();<br>
&gt; if ($resultado == 7 or $resultado == 11) &nbsp; &nbsp; &nbsp;{<br>
&gt; $status = &quot;ganhou&quot;;<br>
<br>
</div>Cadê o &#39;my&#39;<br>
<div class="Ih2E3d"><br>
&gt; }<br>
&gt; elsif ($resultado == 2 or $resultado == 3 or $resultado == 12) &nbsp; &nbsp; &nbsp; &nbsp;{<br>
&gt; $status = &quot;perdeu&quot;;<br>
&gt; }<br>
<br>
</div>Nada contra or e and... mas prefiro &#39;||&#39;(or) e &#39;&amp;&amp;&#39;(and) como operadores lógicos... devem ser resquícios de C<br>
em meu cérebro... rsrsrs! Se não me engando postaram aqui uma vez dizendo que haviam diferenças grandes em se<br>
usar &#39;and&#39;,&#39;or&#39; e &#39;&amp;&amp;&#39;,&#39;||&#39;... vou procurar, se se achar posto um comentário.<br>
<div class="Ih2E3d"><br>
&gt; elsif ($resultado == 4 or $resultado == 5 or $resultado == 6 or $resultado == 8 or $resultado == 9) &nbsp; {<br>
&gt; $status = &quot;continua&quot;;<br>
&gt; $pontos = $resultado;<br>
&gt; }<br>
&gt; while ($status eq &quot;continua&quot;) {<br>
&gt; $resultado = soma();<br>
&gt; if ($resultado == 7) &nbsp;{<br>
&gt; $status = &quot;perdeu&quot;;<br>
&gt; }<br>
&gt; elsif ($resultado == $pontos) {<br>
&gt; $status = &quot;ganhou&quot;;<br>
&gt; }<br>
&gt; }<br>
&gt; print message();<br>
&gt;<br>
&gt; sub soma<br>
&gt; {<br>
&gt; ($dado1 , $dado2) = (indivi() , indivi());<br>
&gt; $somas = $dado1 + $dado2;<br>
&gt; print &quot;Jogador lançou $dado1 + $dado2 e a soma é $somas\n&quot;;<br>
&gt; return $somas<br>
&gt; }<br>
&gt;<br>
&gt; sub indivi<br>
&gt; {<br>
&gt; return 1 + int( rand ( 6 ) );<br>
&gt; }<br>
&gt;<br>
&gt; sub message<br>
&gt; {<br>
&gt; $status = shift;<br>
&gt; return print &quot;Parabéns você ganhou\n&quot; if $status eq &quot;ganhou&quot;;<br>
&gt; return print &quot;Você perdeu\n&quot;;<br>
&gt; }<br>
&gt;<br>
</div><div class="Ih2E3d">&gt; Na sub message:<br>
&gt; tem lá:<br>
&gt; $stauts = shift;<br>
&gt; Mas seu apagar isso, o problema executa normalmente.<br>
&gt; isso retira o primeiro valor de $status correto ?<br>
</div><div class="Ih2E3d">&gt; Mas isso é uma coisa inútil concordam ?(Neste programa)<br>
<br>
</div>Quer dizer, ele imprime $status mesmo sem a linha &#39;$status&#39;??? Se isso acontece, é por uma única e simples<br>
razão... não está usando o pragma &#39;strict&#39;.<br>
<br>
Experimenta colocar &#39;use strict;&#39; no início do código e vc vai ver que esse programa terá muitos problemas.<br>
Reparou por exemplo, que você sempre perde(sem usar strict)?<br>
<div class="Ih2E3d"><br>
<br>
&gt; Acho que o livro tinha que por um exemplo que o shift fosse realmente necessário no programa.<br>
&gt; &quot;<br>
<br>
</div>Aquele shift é necessário... sem ele o status é sempre falso, ou seja, você sempre &#39;perde&#39;.<br>
<br>
&gt; pop &nbsp; &nbsp; - remove o último elemento do array e retorna este elementopush &nbsp; &nbsp;- adiciona elementos ao final do<br>
arrayshift &nbsp; - remove o primeiro elemento do array e retorna este elementosplice &nbsp;- adiciona or remove<br>
elementos em qualquer lugar do arrayunshift&quot;Isso eu já estudei.<br>
<div class="Ih2E3d">&gt; &quot;ARGV&quot;, eu ainda não estudei.<br>
&gt;<br>
&gt;<br>
&gt; Daniel Mantovani<br>
&gt; &quot;A sabedora é a virtude dos sábios.&quot;<br>
&gt; &quot;Até um tolo pode passar por sábio e inteligente se ficar calado&quot;<br>
&gt;<br>
&gt;<br>
&gt; Date: Tue, 10 Jun 2008 19:28:27 -0300<br>
&gt; From: <a href="mailto:shonorio@gmail.com">shonorio@gmail.com</a><br>
&gt; To: <a href="mailto:saopaulo-pm@mail.pm.org">saopaulo-pm@mail.pm.org</a><br>
&gt; Subject: Re: [SP-pm] Desculpa a lista<br>
&gt;<br>
&gt; Daniel,O pessoal já explicou o quê é shift, mas vou avançar um pouco mais e vou dividir o email em duas<br>
partes, sendo elas:<br>
&gt;<br>
&gt;<br>
&gt; operadores de array :<br>
&gt; Os operadores podem ser agrupados por função e os operadores responsável por &#39;manusear&#39; arrays são :<br>
&gt;<br>
</div>&gt; pop &nbsp; &nbsp; - remove o último elemento do array e retorna este elementopush &nbsp; &nbsp;- adiciona elementos ao final do array<br>
&gt; shift &nbsp; - remove o primeiro elemento do array e retorna este elementosplice &nbsp;- adiciona or remove elementos<br>
<div class="Ih2E3d">em qualquer lugar do array<br>
</div>&gt; unshift - adiciona elementos no início do arrayA questão é que todos estes operadores precisam de pelo um<br>
<div class="Ih2E3d">dado/variável para trabalhar, o pop e shift por exemplo. Quanto o nome da variável não é definido aí acontece<br>
as mágias negras do Perl, as variáveis especiais (perldoc perlvar). Entre estas variáveis especiais temos duas<br>
muito utilizada e invisíveis, a &#39;@_&#39; e &#39;$_&#39;.<br>
&gt;<br>
&gt;<br>
&gt; A &#39;@_&#39; é o array padrão para os operadores que estão aguardando um array, ou seja, se você escrever :<br>
&gt; my $x = shift @meu_array; # o shift vai remover o primeiro elemento do array @meu_array e colocar na variável $x;<br>
&gt; my $x = shift; # o shift vair remover o primeiro elemento do array @_, porque você não definiu uma variável,<br>
e colocar na variável $x.<br>
&gt;<br>
&gt; E como você define este valor padrão, quando você passa valores para uma função, por exemplo:<br>
&gt; sub f {<br>
&gt; &nbsp; my $v01 = shift;<br>
&gt; &nbsp; my $v02 = shift @_; # esta faz o mesmo que o primeiro, só que estou declarando o @_<br>
&gt; }<br>
&gt; O &#39;$_&#39; &nbsp;é a mesma coisa, mas ele é o valor padrão para operadores que trabalham com escalares.<br>
&gt; declaração de variáveis:O &#39;my&#39; (nunca My), é um operador de declaração de escopo de variável. Faz parte da<br>
boa política de programação e perl e sempre será exigido quando você utilizar o pragma &#39;strict&#39;. Então sempre,<br>
digo SEMPRE, começe um código em perl assim :<br>
&gt;<br>
</div>&gt; #!/bin/perl<br>
&gt; use strict;<br>
&gt; use warnings;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<div class="Ih2E3d">&gt; Agora, começe a dar uma lida na documentação, dê uma olhada no site <a href="http://www.perl.org.br" target="_blank">www.perl.org.br</a>, pois este teu livro está<br>
muito fraco. Se vc está no meio dele e ainda está com estas dúvidas.<br>
&gt; Abraços,Solli M. Honório<br>
&gt;<br>
&gt;<br>
</div><div class="Ih2E3d">&gt; 2008/6/10 Daniel de Oliveira Mantovani &lt;<a href="mailto:daniel.oliveira.mantovani@hotmail.com">daniel.oliveira.mantovani@hotmail.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
</div><div class="Ih2E3d">&gt; Pessoas, queria me desculpar com vocês por atitudes imaturas.<br>
&gt; Sei que tenho muito o que aprender, principalmente sobre Perl, e não existe lugar melhor para o aprendizado,<br>
do que com os Mestres Dobradores de Perl.<br>
&gt; Espero recuperar a elegância natural de um newbie.<br>
&gt;<br>
&gt; E espero recuperar isso com atitudes e perguntas construtivas.<br>
&gt; Para começar eu não intendi a utilidade do shift quando usado junto à uma variável,<br>
&gt; Exemplo:<br>
&gt; $variavel = shift;<br>
&gt; e também não intendi a utilidade do &quot;My&quot;<br>
&gt;<br>
&gt; Exemplo:<br>
&gt; my $variavel = shift;<br>
&gt; O My eu sei teoricamente o que ele faz, o shift eu sei usar ele perfeitamente com &quot;Array&quot;, para retirar o<br>
primeiro argumento, porém o shift com variável e o My, na prática eu não intendi muito bem, pois como eu já<br>
disse é a minha primeira linguagem de programação.<br>
&gt;<br>
&gt; Gostaria que me mostrassem programas simples com shift junto à uma variável, e o My, sei que simples para<br>
vocês é dificilimo para mim, então pesso que escolham com cuidado.<br>
&gt;<br>
&gt; Obrigado.<br>
&gt;<br>
&gt; Abraços a todos.<br>
&gt;<br>
&gt;<br>
&gt; Daniel Mantovani<br>
&gt;<br>
</div><div class="Ih2E3d">&gt; Notícias direto do New York Times, gols do Lance, videocassetadas e muitos outros vídeos no MSN Videos!<br>
Confira já!<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt;<br>
</div><div class="Ih2E3d">&gt; SaoPaulo-pm mailing list<br>
&gt;<br>
&gt; <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
&gt;<br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
&gt;<br>
&gt;<br>
</div><div class="Ih2E3d">&gt; --<br>
&gt; &quot;o animal satisfeito dorme&quot;. - Guimarães Rosa<br>
&gt;<br>
</div>&gt; _________________________________________________________________<br>
<div class="Ih2E3d">&gt; Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! É GRÁTIS!<br>
</div>&gt; <a href="http://www.msn.com.br/emoticonpack" target="_blank">http://www.msn.com.br/emoticonpack</a><br>
<div><div></div><div class="Wj3C7c"><br>
--<br>
André Garcia Carneiro<br>
Developer(Perl/PHP)<br>
Member of &quot;São Paulo Perl Mongers&quot; - <a href="http://sao-paulo.pm.org" target="_blank">http://sao-paulo.pm.org</a><br>
<br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Alexei Znamensky [russoz_gmail_com] [<a href="http://russoz.wordpress.com">russoz.wordpress.com</a>] [<a href="http://www.flickr.com/photos/alexeiz">www.flickr.com/photos/alexeiz</a>]<br>
&quot;Though we live in trying times, we&#39;re the ones who have to try&quot;