[PortoAlegre-pm] Duvida duplicatas array
Igor Sutton
igor.sutton em gmail.com
Sexta Fevereiro 8 13:38:53 PST 2008
Em 08/02/08, Igor Garcia<igorgf em gmail.com> escreveu:
> Não vou explicar passo a passo porque isso tu podes ver consultando o
> perldoc de cada um dos itens...
> Mas a tecnica é simples, consiste em jogar o valor duplicado como chave de
> um hash (que nao aceita duplicações)... Depois retorna-se os keys desse hash
> (que sao os elementos do array, porém sem duplicidade)...
> Neste caso, usaram o grep para fazer as iterações, mas poderiamos usar tb
> map ou foreach.
>
> Um exemplo similar seria:
>
> my %seila = (); # hash temporario utilizado para remover as duplicidades
> foreach my $a (@array){ $seila{$a}++; }; # itera o array com valores
> duplicados
> my @unique = keys %seila; # cria um array com base nas chaves do hash
> temporário
Ou então ter usado List::MoreUtils::uniq():
use List::MoreUtils qw( uniq );
my @all = qw( 1 2 1 1 2 3 4 4 2 );
my @uniq = uniq( @all ); # devolve ( 1 2 3 4 )
-- Igor
Mais detalhes sobre a lista de discussão PortoAlegre-pm