LINUX.ORG.RU

подскажите про perl


0

0

Есть переменная $sch такого содержимого:
1-3:3.5
3-6:2.0
6-9:3
9-11:4
11-17:5
18-21:6
21-23:4

И есть переменная $x которая может принимать некоторое значение.
Как мне из $sch извлечь строку в первой половине которой находится $x?
Т.е. если $x=4, то мне бы строку 3-6:2.0.
Уже пару часов думаю над этим, все не найду решения.
anonymous

#!/usr/bin/perl

my $sch="
1-3:3.5
3-6:2.0
6-9:3
9-11:4
11-17:5
18-21:6
21-23:4";

my $x = 7;

while ($sch =~ /^(\d+)\-(\d+):\d+\.?\d*$/gm){
  print $&,"\n" if ($x > $1 && $x < $2);
}

olegk ★★
()
Ответ на: комментарий от olegk

Благодарю, с print $&,"\n" if ($x >= $1 && $x < $2); совсем подошло.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.