|
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
|