in reply to Re^2: Subroutine Subtrefuge
in thread Subroutine Subtrefuge

I think it would be easier to have the sub return true on every occurrence of intersection and let the caller sort that out, because there the necessary information is at hand

foreach my $key (keys %points_by_name) { my $intersectionfound=0; for (my $i=0; $i<=@{$points_by_name{$key}}-4; $i+=2) { if (sub(@{$points_by_name{$key}}[$i..$i+3],$x2, $y2, $x3, $y3) and not $intersectionfound) { # found the first intersection of $key } } }
If you really need the info in the sub, just pass $intersectionfound to the sub, as long as it is 0 (false) an intersection is the first intersection of a key (provided that the sub really returns true on found intersections and false otherwise).

PS: I dropped your "excessive" indentation, so that the code fits into the editor window of the website ;-).