<br><br><div class="gmail_quote">2008/6/11 Daniel de Oliveira Mantovani <<a href="mailto:daniel.oliveira.mantovani@hotmail.com">daniel.oliveira.mantovani@hotmail.com</a>>:<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>
<code><br>foreach ( 1 .. 10 ) { #repete 10x<br>print "$_! = " . fatorial($_) . "\n"; #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></code>Repito, primeiro vc deveria entender a diferença entre scalar e array...<code> <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 <= 1 ) {<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><code><div class="Ih2E3d"><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></div>> Date: Wed, 11 Jun 2008 10:20:12 -0200<br>> From: <a href="mailto:andre.garcia.carneir@terra.com.br" target="_blank">andre.garcia.carneir@terra.com.br</a><br>> To: <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br>
> Subject: Re: [SP-pm] Desculpa a lista<div><div></div><div class="Wj3C7c"><br>> <br>> <br>> Explicando da forma mais simples que eu posso:<br>> <br>> $variavel = shift;<br>> <br>> isso é a mesma coisa que <br>
> <br>> $variavel = shift @_;# Isso não ajudou muito né? Leia o resto do e-mail, por favor!<br>> <br>> @_ é uma variável especial em perl. Diz-se que é o 'array padrão'. Quando você omite o array usando 'my<br>
> $variavel = shift', por exemplo, Perl assume automaticamente que você está querendo o retirar o primeiro<br>> elemento do array @_(Por isso diz-se que @_ é o array padrão). Essas variáveis especiais são como 'atalhos'<br>
> para resolver problemas 'cotidianos'(mas nem sempre) em programação, como capturar parâmetros por exemplo:<br>> <br>> <code><br>> !# /usr/bin/perl<br>> use strict;<br>> <br>> my $result = &minha_subrotina('Hey! Eu sou uma string :p ');#você pode omitir o '&' se quiser. Não me lembro se<br>
> isso é recomendado em Perl Best Pratices*...<br>> print $result;<br>> <br>> sub minha_subrotina {<br>> my $var = shift;#capturando o parâmetro enviado pela chamada à subrotina, nesse caso 'Hey! Eu sou uma<br>
> string'.<br>> return $var.'-exemplo didático';#concatenando $var com -exemplo didático e retornando $var <br>> }<br>> </code><br>> <br>> Para saber mais sobre variáveis especiais: perldoc perlvar.<br>
> <br>> O my é um operador usado para fazer declaração de variáveis(Ah... mas perl não precisa disso certo? ERRADO!).<br>> Recomenda-se fortemente que se faça declarações utilizando my/our/local (our e local também são operadores para<br>
> declaração), para garantir que você mantenha suas variáveis dentro dos seus respectivos ESCOPOS, ou seja,<br>> evitar que você saia por aí declarando variáveis globais e tendo surtos pscóticos por não conseguir saber<br>
> porque seu programa sobrescreve valores de variáveis(perl também é saúde)<br>> <br>> Para saber mais sobre declaração: perldoc perlsyn, para saber mais sobre 'my', 'local', e 'our', você pode dar<br>
> uma 'sapiada' aqui. Embora eu recomende fortemente que você compre esse livro:<br>> <br>> <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>
> <br>> <br>> *Perl Best Pratices - livro escrito por Damian Conway, que descreve 'boas práticas de programação', que é<br>> aceito pela comunidade perl mundial.<br>> <br>> <br>> Cheers!<br>> <br>
> <br>> ---------- 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" target="_blank">saopaulo-pm@mail.pm.org</a><br>> Cópia: <br>> Data: Tue, 10 Jun 2008 17:35:56 -0300<br>> Assunto: [SP-pm] Desculpa a lista<br>> <br>> > <br>
> > Pessoas, queria me desculpar com vocês por atitudes imaturas.<br>> > 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>
> > Espero recuperar a elegância natural de um newbie.<br>> > E espero recuperar isso com atitudes e perguntas construtivas.<br>> > Para começar eu não intendi a utilidade do shift quando usado junto à uma variável,<br>
> > Exemplo:<br>> > $variavel = shift;<br>> > e também não intendi a utilidade do "My"<br>> > Exemplo:<br>> > my $variavel = shift;<br>> > O My eu sei teoricamente o que ele faz, o shift eu sei usar ele perfeitamente com "Array", 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>> > 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>> > <br>> > Obrigado.<br>> > <br>> > Abraços a todos.<br>> > <br>> > Daniel Mantovani<br>> > <br>> > _________________________________________________________________<br>
> > Confira vídeos com notícias do NY Times, gols direto do Lance, videocassetadas e muito mais no MSN Video!<br>> > <a href="http://video.msn.com/?mkt=pt-br" target="_blank">http://video.msn.com/?mkt=pt-br</a><br>
> <br>> --<br>> André Garcia Carneiro<br>> Developer(Perl/PHP)<br>> Member of "São Paulo Perl Mongers" - <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" target="_blank">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>
<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>