|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Stupnik 2:5020/400 29 Oct 2004 09:27:08 To : All Subject : проблемка (perl bug?) --------------------------------------------------------------------------------
Hello, All!
Что-то я уже устал я уже бороться.
Может у кого мысли умные возникнут.
Есть regexp получаемый таким образом:
if($line=~/([^:]+):(.*)$/)
{
push @array,{prefix=>$1,rx=>qr($2)};
}
Есть строка, получаемая из File::CSV_XS (Text-CSV_XS-0.23).
Пусть будет $str;
Всё это в дебрях весьма большого скрипта,
который я к сожалению привести не могу.
Так вот, почему-то позднее условие:
if($str=~$item->{rx})
{
}
не срабатывает для пустого regexp-а.
более того, если написать так:
if($str=~//)
{
}
то тоже не срабатывает :-\
use re 'debug';
говорит, что вообще никакой попытки матчинга не было.
Hо! Если тупо сделать copy&paste проблемного куска
в другой файл и забить в точности
такие же данные, то всё ок, всё работает.
Пробовал на active state perl 5.8.0 (806),
и 5.8.0 же, но на солярке.
Одинаково. Версию перла поменять не могу.
Может есть идеи как это победить?
Замена пустого regexp на .* помогает,
но хочется что б пустой тоже работал.
Понятно, что в качестве workaround можно
менять на этапе загрузки пустой на .*, но
как-то ... неправильно :)
--
Best regards,
Konstantin.
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
* Origin: Talk.Mail.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/64887e2c28b8.html, оценка из 5, голосов 10
|