in reply to Hash Multiple values for a key-Filtering unique values for a key in hash

Hello rahulme81,

Another approach is to store each set of values in its own hash, rather than in an array:

use strict; use warnings; use Data::Dump; my $HASH1 = { 'Alabama' => ['Andalusia', 'Anniston', 'Clanton', 'Eufaula', 'A +uburn', 'Bessemer', 'Eufaula', 'Auburn', 'Bessemer' ], 'California' => ['Barstow', 'Barstow'], 'Georgia' => ['Darien'], 'New York' => ['Amsterdam', 'Coney Island', 'Coney Island', 'Bea +con', 'Becon'] }; print "Values stored in anonymous arrays:\n"; dd $HASH1; my $HASH2; for my $key (keys %$HASH1) { ++$HASH2->{$key}{$_} for @{ $HASH1->{$key} }; } print "\nValues stored in anonymous hashes:\n"; dd $HASH2;

Output:

13:39 >perl 1780_SoPW.pl Values stored in anonymous arrays: { "Alabama" => [ "Andalusia", "Anniston", "Clanton", "Eufaula", "Auburn", "Bessemer", "Eufaula", "Auburn", "Bessemer", ], "California" => ["Barstow", "Barstow"], "Georgia" => ["Darien"], "New York" => ["Amsterdam", "Coney Island", "Coney Island", "Beaco +n", "Becon"], } Values stored in anonymous hashes: { "Alabama" => { Andalusia => 1, Anniston => 1, Auburn => 2, Bessemer => 2, Clanton => 1, Eufaula => 2, }, "California" => { Barstow => 2 }, "Georgia" => { Darien => 1 }, "New York" => { "Amsterdam" => 1, "Beacon" => 1, "Becon" => 1, "Co +ney Island" => 2 }, } 13:39 >

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,