|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 03 Mar 2008 15:58:47 To : Alexander V. Gaiduk Subject : Re: баг Перла или баг мозга? -------------------------------------------------------------------------------- Alexander V. Gaiduk -> Andrei Protasovitski @ Mon, 3 Mar 2008 11:17:52 +0000 (UTC): >>> 1. если раскоментировать фрагмент "my $g = $g;" - работает правильно. >> ^^^^^^^^^ >>> >>> 2. если в регэкспе (помеченом **) убрать модификатор "g" >>> работает правильно. >> ^^^^^^^^^ >>> >>> 3. если в данных блок "<zz>...</zz>" поднять над блоком <px>...<.px> >>> работает правильно. >> ^^^^^^^^^ >>> >>> в текущей версии работает неправильно. >> ^^^^^^^^^^^ >>> >>> у кого какие соображения будут по этому поводу? >> >> В первую очередь хотелось бы узнать, что есть "правильно", а что >> "неправильно". AVG> я думал xоть в отладчике то пройдёте алгоритм... Это было крайне наивное предположение. Я еще ни одной программы, про которую я тут отвечал, не прогнал в отладчике. И более того, поскольку я перлового отладчика на ощупь не помню, я скорее не отвечу на письмо, если не разобрался по коду, нежели запущу отладчик. Ибо возиться с ним мне придется долго, а оно мне надо? AVG> неправильно - т.е. не выполняется цикл: AVG> foreach my $p ($g =~ m!<pp>(.+?)</pp>!sg) { $pp .= "($p)"; } AVG> точнее не выполняется операция: AVG> @array = $g =~ m!<pp>(.+?)</pp>!sg; AVG> т.е. @array остаётся пустым. А вот не надо путать "не выполняется операция" и "@array остается пустым"... З.Ы. А любителям отладчиков use re 'debug'; не помогает? (Правильного ответа я не знаю, поскольку им тоже не пользовался.) -- Artem Chuprina RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru Все дуры - бабы фольклор --- ifmail v.2.15dev5.4 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/53378fe95e1f2.html, оценка из 5, голосов 10
|