http://qs321.pair.com?node_id=503450


in reply to Re: How many triangles does your perl script "see"?
in thread How many triangles does your perl script "see"?

Wow that's wordy. Here's a shorter version; I borrowed (i.e. "ripped off") your initial configuration array:
#!/usr/bin/perl use strict; use warnings; # Input, lines of the figure. my @l = ( [qw [A B]], [qw [A C F I]], [qw [A D G J]], [qw [A E]], [qw [B C D E]], [qw [B F H J]], [qw [B I]], [qw [E G H I]], [qw [E J]], [qw [I J]], ); my %line = (); my %flat = (); for my $l (@l) { for my $p (@$l) { for my $q (@$l) { $line{$p,$q}=1; for my $r (@$l) {$flat{$p,$q,$r}=1} } } } my @p = 'A'..'J'; for my $p (@p) { for my $q (@p) { if ($q gt $p and $line{$p,$q}) { print "[$p,$q,$_]\n" for grep {$_ gt $q and $line{$p,$_} and $line{$q,$_} and not $flat{$p,$q,$_}} @p; } } }

None of that double-$, three-level-deep hashref stuff.

--
@/=map{[/./g]}qw/.h_nJ Xapou cets krht ele_ r_ra/; map{y/X_/\n /;print}map{pop@$_}@/for@/