sub strip_US_CA_dup_hols { for my $country (@cntry_of_issue) { for my $holiday (@{$countries{$country}}) { $seen{$holiday}++; } } for my $country (@cntry_of_issue) { my $aref = $countries{$country}; @$aref = grep { $seen{$_} < 2 } @$aref; } } # Prints: 'US' => [ '20120116', '20120528', '20120704', '20121122' ], 'CA' => [ '20120521', '20120702', '20120806', '20121008', '20121226' ]