while() { chomp; my ($family, $people) = split /--/, $_, 2; #split into two: family and memebers my @members = split /,\s*/, $people, -1; #split family line into an array foreach my $member (@members) { #foreach member within array push @{$people{$member}}, $family; #push into an array $families{$family}++; my $total_families = scalar(keys %families);