По Perl вопрос...
Не вдаваясь в общие детали сразу опишу, в чём проблема...
нужно заменить значение в тексте следующим образом:
значение_поля = старому значению_поля + 20.
Пытаюсь сделать это по хитрой схеме (вложение кода в regex), что-то
вроде:
$cont[1]=~s#\((\d+)min\)(\d*):([\s\t]*)(\d+)([,.]{1})(.*)(?{print
$c=$1;})#\(\1\)min\2:\3(\1*20+\4)\5\6#g;
Проблема в том, что в первой части выражения (то, что меняю) я могу
вставить код и он исполняется, но нет доступа к получаемым данным,
во-второй же части (на что меняю) - есть доступ к полученным данным, но
код не исполняется (умножение и суммирование не производятся).
Соответствено, вопрос: как заставить такую схему работать? Спасибо за
ответы.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 30177; Возраст листа: 1290; Участников: 1412
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/635697
On Sun, 4 Feb 2007, Strong wrote:
echo 555.444 | perl -pe 's/(\d+).(\d+)/($2*2)._.($1+20)/ge'
888_575
Во первых /ge , а во во вторых в замене $2 а не \2.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 30211; Возраст листа: 1292; Участников: 1412
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/636674