<br><br><div class="gmail_quote">2008/6/11 Daniel de Oliveira Mantovani &lt;<a href="mailto:daniel.oliveira.mantovani@hotmail.com">daniel.oliveira.mantovani@hotmail.com</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>
A parte de ler o e-mail é porque eu comecei ler de cima para baixo, depois que eu vi que<br>$variavel = shift , é a mesma coisa que $variavel = shift @_.<br>Agora deu para intender agora eu já consigo intender este programa aqui;<br>
&lt;code&gt;<br>foreach ( 1 .. 10 )&nbsp;&nbsp;&nbsp; { #repete 10x<br>print &quot;$_! = &quot; . fatorial($_) . &quot;\n&quot;;&nbsp; #imprime o valor $_! = (Quanto vale o factorial ) newline<br>}<br><br>sub fatorial<br>{<br>my $numero = shift; #retira o valor que está entre () no caso 1,2,3,4,5,6,7,8,9,10, e o valor só existe enquanto está sendo executado é uma variável de escopo léxico, assim que termina a variável de escopo léxico ela é destruida.</div>
</blockquote><div>&lt;/code&gt;Repito, primeiro vc deveria entender a diferença entre scalar e array...&lt;code&gt; <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><br><br>if ($numero &lt;= 1 )&nbsp;&nbsp;&nbsp; {<br>return 1 #se o valor retirado de () for 1 ou menor do que 1 retorna o valor 1 para factorial<br>}<br>else {<br>return $numero * fatorial($numero -1); # caso ao contrario a váriavel numero * quanto vale factorial -1<br>
}<br>}<br>&lt;code&gt;<div class="Ih2E3d"><br><br><br><span style="font-weight: bold;">Daniel Mantovani</span><br>&quot;A sabedora é a virtude dos sábios.&quot;<br>&quot;Até um tolo pode passar por sábio e inteligente se ficar calado&quot;<br>
<br><br></div>&gt; Date: Wed, 11 Jun 2008 10:20:12 -0200<br>&gt; From: <a href="mailto:andre.garcia.carneir@terra.com.br" target="_blank">andre.garcia.carneir@terra.com.br</a><br>&gt; To: <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br>
&gt; Subject: Re: [SP-pm] Desculpa a lista<div><div></div><div class="Wj3C7c"><br>&gt; <br>&gt; <br>&gt; Explicando da forma mais simples que eu posso:<br>&gt; <br>&gt; $variavel = shift;<br>&gt; <br>&gt; isso é a mesma coisa que <br>
&gt; <br>&gt; $variavel = shift @_;# Isso não ajudou muito né? Leia o resto do e-mail, por favor!<br>&gt; <br>&gt; @_ é uma variável especial em perl. Diz-se que é o &#39;array padrão&#39;. Quando você omite o array usando &#39;my<br>
&gt; $variavel = shift&#39;, por exemplo, Perl assume automaticamente que você está querendo o retirar o primeiro<br>&gt; elemento do array @_(Por isso diz-se que @_ é o array padrão). Essas variáveis especiais são como &#39;atalhos&#39;<br>
&gt; para resolver problemas &#39;cotidianos&#39;(mas nem sempre) em programação, como capturar parâmetros por exemplo:<br>&gt; <br>&gt; &lt;code&gt;<br>&gt; !# /usr/bin/perl<br>&gt; use strict;<br>&gt; <br>&gt; my $result = &amp;minha_subrotina(&#39;Hey! Eu sou uma string :p &#39;);#você pode omitir o &#39;&amp;&#39; se quiser. Não me lembro se<br>
&gt; isso é recomendado em Perl Best Pratices*...<br>&gt; print $result;<br>&gt; <br>&gt; sub minha_subrotina {<br>&gt;       my $var = shift;#capturando o parâmetro enviado pela chamada à subrotina, nesse caso &#39;Hey! Eu sou uma<br>
&gt; string&#39;.<br>&gt;       return $var.&#39;-exemplo didático&#39;;#concatenando $var com -exemplo didático e retornando $var <br>&gt; }<br>&gt; &lt;/code&gt;<br>&gt; <br>&gt; Para saber mais sobre variáveis especiais: perldoc perlvar.<br>
&gt; <br>&gt; O my é um operador usado para fazer declaração de variáveis(Ah... mas perl não precisa disso certo? ERRADO!).<br>&gt; Recomenda-se fortemente que se faça declarações utilizando my/our/local (our e local também são operadores para<br>
&gt; declaração), para garantir que você mantenha suas variáveis dentro dos seus respectivos ESCOPOS, ou seja,<br>&gt; evitar que você saia por aí declarando variáveis globais e tendo surtos pscóticos por não conseguir saber<br>
&gt; porque seu programa sobrescreve valores de variáveis(perl também é saúde)<br>&gt; <br>&gt; Para saber mais sobre declaração: perldoc perlsyn, para saber mais sobre &#39;my&#39;, &#39;local&#39;, e &#39;our&#39;, você pode dar<br>
&gt; uma &#39;sapiada&#39; aqui. Embora eu recomende fortemente que você compre esse livro:<br>&gt; <br>&gt; <a href="http://unix.com.ua/orelly/perl/prog3/ch04_08.htm" target="_blank">http://unix.com.ua/orelly/perl/prog3/ch04_08.htm</a><br>
&gt; <br>&gt; <br>&gt; *Perl Best Pratices - livro escrito por Damian Conway, que descreve &#39;boas práticas de programação&#39;, que é<br>&gt; aceito pela comunidade perl mundial.<br>&gt; <br>&gt; <br>&gt; Cheers!<br>&gt; <br>
&gt; <br>&gt; ---------- Cabeçalho original -----------<br>&gt; <br>&gt; 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>
&gt; Para: <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br>&gt; Cópia: <br>&gt; Data: Tue, 10 Jun 2008 17:35:56 -0300<br>&gt; Assunto: [SP-pm] Desculpa a lista<br>&gt; <br>&gt; &gt; <br>
&gt; &gt; Pessoas, queria me desculpar com vocês por atitudes imaturas.<br>&gt; &gt; Sei que tenho muito o que aprender, principalmente sobre Perl, e não existe lugar melhor para o aprendizado,<br>&gt; do que com os Mestres Dobradores de Perl.<br>
&gt; &gt; Espero recuperar a elegância natural de um newbie.<br>&gt; &gt; E espero recuperar isso com atitudes e perguntas construtivas.<br>&gt; &gt; Para começar eu não intendi a utilidade do shift quando usado junto à uma variável,<br>
&gt; &gt; Exemplo:<br>&gt; &gt; $variavel = shift;<br>&gt; &gt; e também não intendi a utilidade do &quot;My&quot;<br>&gt; &gt; Exemplo:<br>&gt; &gt; my $variavel = shift;<br>&gt; &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>
&gt; 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>&gt; disse é a minha primeira linguagem de programação.<br>&gt; &gt; Gostaria que me mostrassem programas simples com shift junto à uma variável, e o My, sei que simples para<br>
&gt; vocês é dificilimo para mim, então pesso que escolham com cuidado.<br>&gt; &gt; <br>&gt; &gt; Obrigado.<br>&gt; &gt; <br>&gt; &gt; Abraços a todos.<br>&gt; &gt; <br>&gt; &gt; Daniel Mantovani<br>&gt; &gt; <br>&gt; &gt; _________________________________________________________________<br>
&gt; &gt; Confira vídeos com notícias do NY Times, gols direto do Lance, videocassetadas e muito mais no MSN Video!<br>&gt; &gt; <a href="http://video.msn.com/?mkt=pt-br" target="_blank">http://video.msn.com/?mkt=pt-br</a><br>
&gt; <br>&gt; --<br>&gt; André Garcia Carneiro<br>&gt; Developer(Perl/PHP)<br>&gt; 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>&gt; <br>&gt; _______________________________________________<br>
&gt; SaoPaulo-pm mailing list<br>&gt; <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>&gt; <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
<br></div></div><div class="Ih2E3d"><hr>Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! <a href="http://www.msn.com.br/emoticonpack" target="_blank">É GRÁTIS!</a></div></div>
<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></blockquote></div><br><br clear="all"><br>-- <br>Just another Perl Hacker,<br>Fernando (SmokeMachine)<br>
<a href="http://perl-e.org">http://perl-e.org</a>