[Rio-pm] "Escopo"?

Solli Honorio shonorio em gmail.com
Segunda Abril 28 17:03:00 PDT 2008


Isto mesmo Samir, você pode escrever coisas assim :

<code>

for my $i  (0..100) {
  imprimir($i);
}

sub imprimir {
  my $i = shift;
  print "$i\n";
}

</code>

Apesar das variáveis terem o mesmo nome, elas possuem endereço de memória
distintas, por isto são variáveis diferentes.  Mas tome cuidado com isto,
pois o código abaixo não vai rodar exatamente como você acha, teste você
mesmo.

<code>

my $i = 0;
for my $i  (0..100) {
  imprimir($i);
}

sub imprimir {
  print "$i\n";
}

</code>

Outro detalhe importante são os closures,  mas acho melhor você compreender
bem a questão da variável local e global.

Abraços,

Solli M. Honório

2008/4/28 Samir Cury <rimasy em gmail.com>:

> Pessoal,
>
> Vendo algumas palestras lá no ET pensei o seguinte:
>
> foi falado muito de
>
> {
>
>   Escopo
>
> }
>
> então se eu "tranco" o meu loop dentro do escopo usando $i como índice, e
> declaro "$i" como "my $i", então ela será uma variável local dentro daquele
> escopo APENAS, ou seja, para o resto do programa (fora do escopo) ela nem
> existe, então eu posso em todos os loops usar a mesma variável.
>
> Bom foi isso que eu deduzi, queria uma confirmação.
>
> Valeu!
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
"o animal satisfeito dorme". - Guimarães Rosa
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/rio-pm/attachments/20080428/821ed13f/attachment.html 


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