#!/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"; }