[Cascavel-pm] Duvida em variavel

Nelson Ferraz nferraz em gmail.com
Sexta Maio 11 02:58:55 PDT 2007


> Amigos, o que eu preciso é saber como posso a exemplo opr uma  
> variavel assim
>
> push(@acessos,"$ip|$vezes");
>
> ai fazer um ama verificação se ja tem esse $ip no @acessos, se tiver,
> $vezes++ neste $ip, alguma sugestão?

O Luiz Gonzaga já respondeu, mas acho que vale a pena reforçar a  
explicação:

Sempre que você encontrar um problema de contagem como esse, um  
alarme deveria soar automaticamente na sua mente, com luzes girando e  
a palavra "hash" piscando incessantemente.

Um hash permite acessar diretamente um elemento e incrementar o seu  
valor, enquanto que um array exigiria um loop e uma verificação, item  
a item.

Este é um idioma tão comum em Perl que podemos chamá-lo genericamente  
de "hash %count", embora ele possa aparecer com qualquer outro nome.

     my %count;
     foreach ( @items ) {
         $count{$_}++;
     }

Depois, você pode passar por cada uma das chaves do hash e imprimir  
seu valor:

     foreach ( keys %count ) {
         print "key: $_, value: $count{$_}\n";
     }

Para concluir: não deixe de ler os documentos traduzidos em:

     http://www.perl.org.br

(Se puder, ajude-nos a traduzir mais alguns!)

[]s

Nelson


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