my %completed :shared = (); # Record completed datast my %results_global :shared = (); # Global; holds intersections my @jobs :shared = (); # Holds thread IDs # Since I know what to call the different subsets up front, I'll pre- # share them. In my experience, this is *much* faster than calling # shared_clone({}) for hash values that are deeply branching HREFs. foreach my $outer (@data_entire) { $results{$outer} = &share({}); foreach my $inner (@data_entire) { $results{$outer}->{$inner} = &share([]); # Hold AREFs } } #OUTER