我有txt文件,列值看起来像
85806534..85893402 49011742..49029143 114352846..114428174
我想做智能匹配。我将这些值放入@array [0]
if ($line ~~$array[0]){do something here}
如何将$ array [0]作为数字范围?
如果我拆分..然后将值放入数组[0]和数组[1]
if ($line ~~[$array[0]..$array[1]){....}
这个perl代码对我有用。
$line ~~ [ do { my ($min, $max) = split(/\.\./, $array[0]); $min..$max } ]
这里的低效率是疯狂的。为什么要创建具有成千上万个元素的数组仅用于smartmatch?即使smartmatch在被打破这些年之后仍然没有被标记为实验性的,你应该使用以下代码:
my ($min, $max) = split(/\.\./, $array[0]);
$line >= $min && $line <= $max