note
ccn
<code>
#!/usr/bin/perl -l
my $region1=[[1,2],[5,7]];
my $region2=[[2,6]];
sub max {
return $_[0] > $_[1] ? $_[0] : $_[1];
}
sub min {
return $_[0] < $_[1] ? $_[0] : $_[1];
}
sub getIntersect {
my ($reg1, $reg2) = @_;
return if $reg1->[1] < $reg2->[0];
return if $reg1->[0] > $reg2->[1];
return (max($reg1->[0], $reg2->[0]), min($reg1->[1], $reg2->[1]));
}
foreach my $r1 (@$region1) {
foreach my $r2 (@$region2) {
if( my @is = getIntersect($r1, $r2) ) {
print "[$is[0], $is[1]]";
}
}
}
</code>
797136
797136