<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
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 "$_! = " . fatorial($_) . "\n";&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.<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;<br><br><br><span style="font-weight: bold;">Daniel Mantovani</span><br>"A sabedora é a virtude dos sábios."<br>"Até um tolo pode passar por sábio e inteligente se ficar calado"<br><br><br>&gt; Date: Wed, 11 Jun 2008 10:20:12 -0200<br>&gt; From: andre.garcia.carneir@terra.com.br<br>&gt; To: saopaulo-pm@mail.pm.org<br>&gt; Subject: Re: [SP-pm] Desculpa a lista<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 'array padrão'. Quando você omite o array usando 'my<br>&gt; $variavel = shift', 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 'atalhos'<br>&gt; para resolver problemas 'cotidianos'(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('Hey! Eu sou uma string :p ');#você pode omitir o '&amp;' 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 'Hey! Eu sou uma<br>&gt; string'.<br>&gt;       return $var.'-exemplo didático';#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 'my', 'local', e 'our', você pode dar<br>&gt; uma 'sapiada' aqui. Embora eu recomende fortemente que você compre esse livro:<br>&gt; <br>&gt; http://unix.com.ua/orelly/perl/prog3/ch04_08.htm<br>&gt; <br>&gt; <br>&gt; *Perl Best Pratices - livro escrito por Damian Conway, que descreve 'boas práticas de programação', 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=terra.com.br@pm.org<br>&gt; Para: saopaulo-pm@mail.pm.org<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 "My"<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 "Array", 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; http://video.msn.com/?mkt=pt-br<br>&gt; <br>&gt; --<br>&gt; André Garcia Carneiro<br>&gt; Developer(Perl/PHP)<br>&gt; Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org<br>&gt; <br>&gt; _______________________________________________<br>&gt; SaoPaulo-pm mailing list<br>&gt; SaoPaulo-pm@pm.org<br>&gt; http://mail.pm.org/mailman/listinfo/saopaulo-pm<br><br /><hr />Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! <a href='http://www.msn.com.br/emoticonpack' target='_new'>É GRÁTIS!</a></body>
</html>