[SP-pm] Desculpa a lista

Daniel de Oliveira Mantovani daniel.oliveira.mantovani em hotmail.com
Quarta Junho 11 08:52:10 PDT 2008


A parte de ler o e-mail é porque eu comecei ler de cima para baixo, depois que eu vi que
$variavel = shift , é a mesma coisa que $variavel = shift @_.
Agora deu para intender agora eu já consigo intender este programa aqui;
<code>
foreach ( 1 .. 10 )    { #repete 10x
print "$_! = " . fatorial($_) . "\n";  #imprime o valor $_! = (Quanto vale o factorial ) newline
}

sub fatorial
{
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.

if ($numero <= 1 )    {
return 1 #se o valor retirado de () for 1 ou menor do que 1 retorna o valor 1 para factorial
}
else {
return $numero * fatorial($numero -1); # caso ao contrario a váriavel numero * quanto vale factorial -1
}
}
<code>


Daniel Mantovani
"A sabedora é a virtude dos sábios."
"Até um tolo pode passar por sábio e inteligente se ficar calado"


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

_________________________________________________________________
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos com até 6,000 fotos!
http://www.amigosdomessenger.com.br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080611/78eb2053/attachment-0001.html 


Mais detalhes sobre a lista de discussão SaoPaulo-pm