foreach my $pwy (keys %HoPwy){ my @members=@{$HoPwy{$pwy}}; my $pwyLen=scalar(@members); for (my $i=0;$i<($pwyLen-1);$i++){ for (my $j=1;$j<$pwyLen;$j++){ print OUT join("\t",$members[$i],$members[$j],$pwy)."\n"; } } } close(OUT);