my $region1=[[1,2],[5,7]]; my $region2=[[2,6]]; my $mask1=&toMask($region1); # 1100111 my $mask2=&toMask($region2); # 0111110 my $mask3=&maskAND($region1,$region2); # 0100110 sub toMask { my @regions=@_; my @result; foreach my $curr (@regions) { for (my $i=$curr->[0];$i<=$curr->[1];$i++) { $result[$i-1]=1; } } for (my $i=0;$i<@result;$i++) { $result[$i]=0 if ($result[$i]!=1); } return join "",@result; }