Как сделать значение столбца в качестве диапазона номеров для Smartmatch - PullRequest
0 голосов
/ 05 октября 2018

У меня есть текстовый файл со значением столбца выглядит как

85806534..85893402
49011742..49029143
114352846..114428174

Я хочу сделать Smartmatch,Я помещаю эти значения в @array [0]

if ($line ~~$array[0]){do something here}

Как мне сделать $ array [0] в качестве диапазона чисел?

, если я разделю на .., затем поместим значения вмассив [0] и массив [1]

if ($line ~~[$array[0]..$array[1]){....}

этот Perl-код работает для меня.

1 Ответ

0 голосов
/ 05 октября 2018
$line ~~ [ do { my ($min, $max) = split(/\.\./, $array[0]); $min..$max } ]

Неэффективность здесь безумная.Почему вы хотите создать массивы с 10 тысячами элементов просто для smartmatch?Даже если Smartmatch все еще не был помечен как экспериментальный за все эти годы, поскольку он был сломан, вы должны использовать следующее:

my ($min, $max) = split(/\.\./, $array[0]);
$line >= $min && $line <= $max
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...