我的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代码对我有用。
答案 0 :(得分:4)
$line ~~ [ do { my ($min, $max) = split(/\.\./, $array[0]); $min..$max } ]
这里的低效率是疯狂的。您为什么要创建包含成千上万个元素的数组以进行智能匹配?这些年来,即使smartmatch仍然没有被标记为处于实验状态,您也应该使用以下代码:
my ($min, $max) = split(/\.\./, $array[0]);
$line >= $min && $line <= $max