my %seen; for my $key (keys %students) { my $value_key = "@{[values %{$students{$key}}]}"; if (exists $seen{$value_key}) { delete $students{$key}; } else { $seen{$value_key}++; } } undef %seen;