for (values %$HASH1) { my %seen; $_ = [ grep { ! $seen{$_}++ } @$_ ]; } #### my %seen; for (values %$HASH1) { $_ = [ grep { ! $seen{$_}++ } @$_ ]; } #### my %seen; $_ = [ grep { ! $seen{$_}++ } @$_ ] for values %$HASH1; #### { "Alabama" => ["Andalusia", "Anniston", "Clanton", "Eufaula", "Auburn"], "California" => ["Barstow"], "New York" => ["Amsterdam", "Coney Island", "Beacon"], "Utah" => ["Layton"], } #### $_ = [ grep { state %seen; ! $seen{$_}++ } @$_ ] for values %$HASH1;