my %unique = map { my @k=sort(keys %$_); join("",@k, @$_{@k}) => $_ } @test_data; print Dumper [values %unique];