我有一个间隔列表(大约 42000)和一个值数组(几百万),我想从每个间隔的较长值列表中获取值。
有没有办法(或模块)我可以直接提取每个区间内的值,而不是遍历所有值并与每个区间的循环内的区间进行比较。这是非常耗时的。
例如:
foreach my $read_pos ( keys %{ $reads{$chr} } ) { #$reads{$chr} is the list of all values
if ( ( $read_pos >= $utr_start ) && ( $read_pos <= $utr_end ) ) { #$utr_start and $utr_end are intervals
push( @{ $reads_tsx{$acc} }, $read_pos );
}
}