如何将列值作为smartmatch的数字范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将列值作为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?即使smartmatch在被打破这些年之后仍然没有被标记为实验性的,你应该使用以下代码:
my ($min, $max) = split(/../, $array[0]);
$line >= $min && $line <= $max
以上是关于如何将列值作为smartmatch的数字范围的主要内容,如果未能解决你的问题,请参考以下文章