sub intersect { my ($a,$b,$c,$d) = @_; my ($n1,$n2) = ([$a,$b],[$c,$d]); if($a > $c){ my $t = $n1; $n1 = $n2; $n2 = $t; } ($a,$b,$c,$d) = (@n1,@n2); return ($b-$c)*($b>$c)-($b-$d)*($b>$d); }