[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