[Moscow.pm] Mojo::DOM - each & replace

Nick Knutov mail на knutov.com
Чт Дек 26 14:54:57 PST 2013


Очень редко использую 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