如何将列值作为智能匹配的数字范围
How to make a column value as an number range for smartmatch
我的 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 在这些年被破坏后仍未被标记为实验性,您也应该使用以下内容:
my ($min, $max) = split(/\.\./, $array[0]);
$line >= $min && $line <= $max
我的 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 在这些年被破坏后仍未被标记为实验性,您也应该使用以下内容:
my ($min, $max) = split(/\.\./, $array[0]);
$line >= $min && $line <= $max