Спасибо. Оказалось, что надо спать чаще и не забывать потом возвращать
данные из функции.

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

Ответить