[SP-pm] Pergunta sobre a variável $_

"Flávio R. Lopes" flavio.lopes at links.inf.br
Mon Jul 12 18:06:45 PDT 2010


Grande Thiago (my Jedi Master!)....acho que estou tentando ser 
"preguiçoso" demais!! :p
Acho que acabei de enxergar um erro que cometi!!, colocando esta 
variável global onde se esperava um array...

E uma das coisas que me gerou dúvida, foi exatamente o que você 
comentou: "Se a variável $_ esta dentro de um bloco, o(s) valor(es) a 
ela atribuidos deveriam "morrer" dentro do bloco"

Valeu pelo help!

Abraço!


Em 12-07-2010 21:25, Thiago Glauco Sanchez escreveu:
> Flávio, meu impaciente padawan, não seria:
>
> for (@meu_array){
>     código do bloco...
>     ...onde $_ recebe individualmente cada elemento do array
> }
>
> e no perl 5.12 você pode definir $_ localmente com my.
>
> C:\Users\thiago\Desktop>perl -E "$_ = 10; for my $_ (0..9){say $_} say 
> $_;"
> 0 #no meu bloco for, a $_ local recebe valores de 0..9 e não 
> influencia a $_ global
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> 10 #repare que 10 é o valor fora do bloco!!!
>
>
> Em 12/07/2010 21:10, Giuliani Sanches escreveu:
>> Essa é a famosa global "default variable".
>>
>> Você não vai conseguir fazer um foreach nessa variável pois ela é um 
>> scalar.
>>
>> Ela é usada automaticamente pelo perl em diversas funções, loops,
>> testes de arquivos ...
>>
>> Da uma lida aqui http://perldoc.perl.org/perlvar.html e você vai
>> entende-la melhor.
>>
>> []'s
>>
>> Em 12 de julho de 2010 20:49, "Flávio R. Lopes"
>> <flavio.lopes em links.inf.br>  escreveu:
>>> Olá pessoal!
>>>
>>> Como funciona (na memória) os dados que ficam armazenados na 
>>> variável $_  ?
>>> Ou seja, supondo que dentro de um programa meu, eu a utilize em dois 
>>> "blocos
>>> foreach":
>>>
>>> ... código ...
>>> foreach ($_) {
>>> ...código_do_bloco-1....
>>>
>>> }
>>>
>>> # e depois novamente em outro bloco:
>>>
>>> foreach ($_) {
>>> ...código_do_bloco-2....
>>>
>>>   }
>>>
>>> Quero dizer o seguinte, o último valor que ficou armazenado nela 
>>> ($_), ao
>>> final do primeiro bloco, será o "primeiro" valor a ser considerado 
>>> quando o
>>> programa for rodar o bloco-2 ?
>>> É preciso "limpar" esta variável antes de usá-la em outro trecho do 
>>> código?
>>>
>>> Não sei se fui claro...
>>>
>>> Abraço,
>>> Flávio
>>>
>>>
>>> _______________________________________________
>>> SaoPaulo-pm mailing list
>>> SaoPaulo-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>
>>
>>
>
>



More information about the SaoPaulo-pm mailing list