my @z; for (my $r = 0; $r <= 2; $r++) {$z[$r]=$subgraphs[0][$r];} for my $QT (@z ){ print Dumper $QT; for my $triplet ( @S ){ my %Pie; undef @Pie{@$QT}; delete @Pie{ @$triplet }; print "@$triplet\n" if keys(%Pie) <= ( @$QT - @$triplet ) ; } }