Спасибо. Оказалось, что надо спать чаще и не забывать потом возвращать данные из функции.
27.12.2013 11:25, Андрей Фёдоров пишет: > У меня этот код из > > <div> > <img class="image-left" alt="some"> > <img class="image-left"> > </div> > > формирует > <div> > <figure class="image-left"><img alt="some" class="image-left" > /><figcaption>some</figcaption></figure> > <figure class="image-left"><img class="image-left" /></figure> > </div> > > > 27 декабря 2013 г., 2:54 пользователь Nick Knutov <[email protected] > <mailto:[email protected]>> написал: > > Очень редко использую Mojo::DOM и не могу понять как сделать ->each так, > чтобы заменить найденное чем-то, сгенерированным на основе найденного. > > Пример: > > $dom->find('img.image-left')->each(sub { > my $img = shift; > my $alt = $img->attr('alt') | ''; > my $r = '<figure class="image-left">' > . $img > . (length($alt)>1? > '<figcaption>'.$img->attr('alt').'</figcaption>' : '') > . '</figure>'; > $img->replace($r); > return $img->root; > }); > > Внутри $img->root я получаю именно тот, который надо. Но снаружи ничего > не меняется. Где я не прав? > > Подходящие слова к гуглу на тему "mojo dom each replace" подобрать не > удалось. Нагуглить альтернативы Mojo::DOM - тоже. Есть pQuery и куча > разных ::DOM, но нигде не вижу функционала для найти и заменить на > производное от найденного (а во многих модулях и замены нет). > > -- > Best Regards, > Nick Knutov > http://knutov.com > ICQ: 272873706 > Voice: +7-904-84-23-130 > -- > Moscow.pm mailing list > [email protected] <mailto:[email protected]> | http://moscow.pm.org > > > > -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
