Очень редко использую 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] | http://moscow.pm.org

Ответить