加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl模块分割/屏蔽间隔

发布时间:2020-12-15 23:37:02 所属栏目:大数据 来源:网络整理
导读:我使用Set :: IntervalTree代码来比较两组间隔.但是,我需要一个额外的方法,AFAIK目前尚未在此模块中实现. 我想有一个方法将一个间隔分成两个或多个.例如: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = [Original Interval A] rrrrrrrrr = [Interval B to mask a
我使用Set :: IntervalTree代码来比较两组间隔.但是,我需要一个额外的方法,AFAIK目前尚未在此模块中实现.

我想有一个方法将一个间隔分成两个或多个.例如:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    <= [Original Interval A]
           rrrrrrrrr                    <= [Interval B to mask against A]
xxxxxxxxxxx         xxxxxxxxxxxxxxxx    <= [Resulting Intervals A1 and A2]

如果可以使用现有的Perl模块,任何想法?

编辑:

有关更多信息,每个间隔的大小可以是1到10亿(1E9),并且在每个间隔集中,间隔可以是1到1百万(1E6)个间隔.

解决方法

Set :: IntSpan确实需要你,假设你的间隔需要整数边界:

#!/usr/bin/perl -w
use strict;
use Set::IntSpan;

my $A    = new   Set::IntSpan '1-1000000000';
my $B    = new   Set::IntSpan '3-5,10-20,100-200,1000-2000';
my $C    = diff $A $B;

print $C;

回报

1-2,6-9,21-99,201-999,2001-1000000000

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读