[Rio-pm] aprendendo ao corrigir provas

Gabriel Vieira gabriel.vieira em gmail.com
Qua Jun 28 08:33:46 PDT 2017


Olá Nicole,

Está sim. A depender do valor de cada item, claro. Isso é bem interessante
aliás.

If any element of LIST is an lvalue, you can modify it by modifying VAR
inside the loop. Conversely, if any element of LIST is NOT an lvalue, any
attempt to modify that element will fail. *In other words, the foreach loop
index variable is an implicit alias for each item in the list that you're
looping over.*

Segue a referência da documentação:
http://perldoc.perl.org/perlsyn.html#For-Loops

2017-06-28 11:07 GMT-04:00 Nicole Scherer <bionica2007-perl em yahoo.com>:

> Olá Monges!
>
> Estou chocada!
> Acabei de descobrir que alterar o valor de $item dentro de um loop
> foreach my $item (@vetor){ }  altera o valor do elemento do array!
> Como é que eu nunca tinha percebido isto?
> Quando leio os scripts dos alunos, sempre aprendo uma maneira inusitada de
> resolver uma questão. Mas esta contradiz uma certeza que eu tinha...
>
> #LETRA d) da Questão 01 - TROCAR T por U na Sequencia
>
> my @nucls = split(//, $dna);
>
> foreach my $item(@nucls) {
>     print "@nucls\n";
>     if($item eq "T") {
>         $item = "U";
>     }
>     if($item eq "t") {
>         $item = "u";
>     }
> }
> my $seq = uc(join("", @nucls));
>
> E a sequencia realmente foi modificada!
> Na minha concepção, a variável $item recebia o valor de cada elemento do
> array, mas ocupava um endereço diferente.
> Mas assim, me parece que ela não passa de uma referência.
> Está certo isto?
>
> []s,
> Nicole
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
Gabriel Vieira
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20170628/fbd2c8bc/attachment.html>


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