Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander V. Gaiduk                  2:5020/400     03 Mar 2008  13:12:38
 To : All
 Subject : баг Перла или баг мозга?
 -------------------------------------------------------------------------------- 
 
 доброго времени суток.
 
 пописывая на выходных свою парсилку натолкнулся на один
 очень прикольный глюк. с одной стороны похоже на баг Перла,
 с другой неправомерное использование спискового контекста
 совместно с регулярными выражениями.
 
 кароче, я добился 100% повторяемости этого глюка,
 вот исходник:
 
 --8<-------------------------------------------------------------
 #!/usr/bin/perl -w
 use strict;
 
 my $page = q{
 <gg>
     <xx>x01</xx>
     <px>
         <pp>p11</pp>
         <pp>p12</pp>
         <pp>p13</pp>
     </px>
     <zz>z01</zz>
 </gg>
 <gg>
     <xx>x01</xx>
     <px>
         <pp>p21</pp>
         <pp>p22</pp>
         <pp>p23</pp>
     <px>
     <zz>z02</zz>
 </gg>
 <gg>
     <xx>x01</xx>
     <px>
         <pp>p31</pp>
         <pp>p32</pp>
         <pp>p33</pp>
     <px>
     <zz>z03</zz>
 </gg>
 };
 
 foreach my $g ($page =~ m!<gg>(.+?)</gg>!sg) {
 
     my $xx = $1 if ($g =~ m!<xx>(.+?)</xx>!sg);
     my $zz = $1 if ($g =~ m!<zz>(.+?)</zz>!sg);  # **
 
 #    my $g = $g;
     my $pp = '';
     foreach my $p ($g =~ m!<pp>(.+?)</pp>!sg) { $pp .= "($p)"; }
 
     print "ZZ: $zz\n";
     print "XX: $xx\n";
     print "PP: $pp\n";
 }
 
 --8<-------------------------------------------------------------
 
 1. если раскоментировать фрагмент "my $g = $g;" - работает правильно.
 
 2. если в регэкспе (помеченом **) убрать модификатор "g"
 работает правильно.
 
 3. если в данных блок "<zz>...</zz>" поднять над блоком <px>...<.px>
 работает правильно.
 
 в текущей версии работает неправильно.
 
 у кого какие соображения будут по этому поводу?
 --
 С уважением, Александр Гайдук, вебмастер мэрии Архангельска
 $_='p<5H1>45BO&]Ov194E;Ok71Fo1B839DI]BEm';tr#\x20-~#P-~\x20-O#;print;
 
 --- ifmail v.2.15dev5.4
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 баг Перла или баг мозга?   Alexander V. Gaiduk   03 Mar 2008 13:12:38 
 Re: баг Перла или баг мозга?   Andrei Protasovitski   03 Mar 2008 13:01:46 
 Re: баг Перла или баг мозга?   Alexander V. Gaiduk   03 Mar 2008 15:17:52 
 Re: баг Перла или баг мозга?   Artem Chuprina   03 Mar 2008 15:58:47 
 Re: баг Перла или баг мозга?   Andrei Protasovitski   03 Mar 2008 16:00:47 
 Re: баг Перла или баг мозга?   Alexander V. Gaiduk   04 Mar 2008 10:53:11 
 Re: баг Перла или баг мозга?   Artem Chuprina   04 Mar 2008 12:38:27 
 Re: баг Перла или баг мозга?   Artem Chuprina   03 Mar 2008 15:50:14 
 Re: баг Перла или баг мозга?   Alexander V. Gaiduk   03 Mar 2008 18:57:40 
 Re: баг Перла или баг мозга?   Artem Chuprina   03 Mar 2008 20:40:09 
 Re: баг Перла или баг мозга?   Alexander V. Gaiduk   04 Mar 2008 11:03:20 
 нескалярный контекст   Dmitry E. Oboukhov   04 Mar 2008 11:17:18 
 Re: нескалярный контекст   Andrei Protasovitski   04 Mar 2008 11:35:52 
 Re: нескалярный контекст   Orlovsky Alexander   04 Mar 2008 19:54:25 
 нескалярный контекст   Dmitry E. Oboukhov   05 Mar 2008 11:15:47 
 Re: нескалярный контекст   Andrei Protasovitski   05 Mar 2008 12:03:22 
 Re: нескалярный контекст   Artem Chuprina   05 Mar 2008 15:37:03 
 нескалярный контекст   Dmitry E. Oboukhov   05 Mar 2008 16:16:07 
 Re: нескалярный контекст   Artem Chuprina   05 Mar 2008 14:13:25 
 нескалярный контекст   Dmitry E. Oboukhov   05 Mar 2008 15:35:14 
 Re: нескалярный контекст   Artem Chuprina   05 Mar 2008 16:45:55 
 нескалярный контекст   Dmitry E. Oboukhov   05 Mar 2008 17:14:55 
 Re: нескалярный контекст   Artem Chuprina   05 Mar 2008 17:43:33 
 нескалярный контекст   Dmitry E. Oboukhov   05 Mar 2008 18:01:33 
 Re: нескалярный контекст   Ilya Anfimov   05 Mar 2008 19:26:07 
 нескалярный контекст   Dmitry E. Oboukhov   05 Mar 2008 19:54:28 
 Re: нескалярный контекст   Ilya Anfimov   05 Mar 2008 20:27:16 
 нескалярный контекст   Dmitry E. Oboukhov   05 Mar 2008 22:10:22 
 Re: нескалярный контекст   Artem Chuprina   04 Mar 2008 12:51:37 
Архивное /ru.perl/33787c23d1866.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional