[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