[SP-pm] Desculpa a lista

Wendel Scardua wendelscardua em gmail.com
Quarta Junho 11 13:40:04 PDT 2008


2008/6/11 Daniel de Oliveira Mantovani <daniel.oliveira.mantovani em hotmail.com>:
> 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.
>

Preste um pouco mais de atenção:

foreach( 1.. 10) {
  # aqui dentro, $_ vale 1 na primeira iteração, 2 na segunda, assim
por diante.
  print fatorial($_), "\n";  # aqui, $_ só tem UM valor, então, dentro
da sub fatorial(), o @_ vai conter apenas UM número - o que muda a
cada passo é QUAL número.
}

Digo isso porque, do jeito que você escreveu, parece que você entendeu
que a função fatorial recebe a lista de números de 1 a 10, e que o
shift está agindo sobre essa lista. (e se não foi isso que você quis
dizer, tente se expressar melhor na próxima vez)

[]s
Wendel


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