in reply to How to get rid of dupes from an array of hashes
output#!/usr/bin/perl -w use strict; my @array = ( { a => 1, b => 2, c => 3}, { a => 1, b => 2, c => 3}, { a => 1, b => 2, c => 3}, { a => 2, b => 2, c => 3}, { a => 2, b => 1, c => 3} ); my @unique = do{ my %seen = map{join(":", values %{$_}), $_} @array; values %seen; }; foreach(@array){ foreach my $key(sort keys %{$_}){ print "$key => $_->{$key}:"; } print "\n"; } print "\nunique\n"; foreach(@unique){ foreach my $key(sort keys %{$_}){ print "$key => $_->{$key}:"; } print "\n"; }
a => 1:b => 2:c => 3: a => 1:b => 2:c => 3: a => 1:b => 2:c => 3: a => 2:b => 2:c => 3: a => 2:b => 1:c => 3: unique a => 2:b => 2:c => 3: a => 1:b => 2:c => 3: a => 2:b => 1:c => 3:
tomy %seen = map{join(":", values %{$_}), $_} @array;
my %seen = map{join(":", keys %{$_}), $_} @array;
|
|---|