[Rio-pm] Dúvida com o foreach

Fabrício Firmino de Faria firminodefaria em gmail.com
Quinta Janeiro 10 02:55:30 PST 2008


Na verdade este foi um exemplo que um amigo pegou na internet, ele me
perguntou pq isso acontecia e eu não tive a mínima idéia.

Agradeço pela resposta :)

Em 10/01/08, breno <breno em rio.pm.org> escreveu:
>
> Pq vc está pensando como C. Pense como VC! :-P
>
> $cor não é um índice, é uma cor! Vc nomeou certo, mas usou errado :-)
>
> "para cada cor em @cores, imprime... a própria cor!"
> ou, em Perl:
>
> foreach $cor (@cores) {
>    print $cor . "\n";
> }
>
> isso deve fazer o que vc quer.
>
> Ao pedir para o Perl imprimir $cores[$cor], vc está efetivamente
> pedindo que ele imprima o item da lista @cores na posição "azul",
> depois na posição "verde", depois na posição "amarelo", e depois na
> posição "vermelho". Essas strings, ao serem tratadas em contexto
> escalar,
> estão sendo avaliadas como 0 e, consequentemente, retornando $cores[0]
> a cada iteração do seu foreach().
>
> Entendeu? Se quiser manter o sotaque de C, pode tentar algo como:
>
> for ($i = 0; $i < @cores; $i++) {    # agora sim temos um índice!
>     print $cores[$i] . "\n";
> }
>
> []s
>
> -b
>
> On Jan 10, 2008 8:20 AM, Fabrício Firmino de Faria
> <firminodefaria em gmail.com> wrote:
> > Olá a todos, algué poderia me dizer pq o código:
> >
> > @cores = ("azul","verde","amarelo","vermelho");
> >
> > foreach $cor (@cores) {
> >     print $cores[$cor],"\n";
> > }
> >
> > imprime azul
> >             azul
> >             azul
> >             azul
> >
> >
> > VLW
> >
> >
> >
> >
> >
> > _______________________________________________
> > Rio-pm mailing list
> > Rio-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> >
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/rio-pm/attachments/20080110/12df5e7f/attachment.html 


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