Изменение вашего саба на использование print
и purge
вместо flush
решает проблему:
sub cd_catalogue {
my( $t, $cd_catalogue ) = @_;
$cd_catalogue->print;
$cd_catalogue->purge;
}
flush
запутывается из-за простоты вашего примера, потому что cd_catalogue
является корневым узлом. Если вы измените свои данные на что-то вроде этого:
my $string = '
<cds>
<cd_catalogue><title>Hello, World!</title></cd_catalogue>
</cds>';
или если вы изменили ваш twig_handler для поиска title
:
twig_handlers => { title => \&cd_catalogue }
тогда вы обнаружите, что $cd_catalogue->flush
теперь работает как положено с вашим $string
.
/ I3az /