my $overlap = {}; foreach $Cluster_Num (keys %HoCl){ my @members=@{$HoCl{$Cluster_Num}}; my $count = scalar(@members); for (my $i=0;$i<$count;$i++){ for (my $j=$i+1;$j<$count;$j++) { $overlap -> {$members[$i]} -> {$members[$j]} = 0; $overlap -> {$members[$i]} -> {$members[$j]} ++; $overlap -> {$members[$j]} -> {$members[$i]} ++; } } }