В дополнение к SAX и DOM там STaX, анализирующий доступное использование XMLStreamReader, который является синтаксическим анализатором получения по запросу xml.
Вы пробовали использовать
в модуле в блоке [% PERL%]
?
Теперь я лично напишу плагин, который передает, скажем, MyOrg :: Plugin :: Util-> prettify_date
на Util :: prettify_date
после удаления первого аргумента. Вы также можете автоматизировать создание этих методов:
my @to_proxy = qw( prettify_date );
sub new {
my $class = shift;
{
no strict 'refs';
for my $sub ( @to_proxy) {
*{"${class}::${sub}"} = sub {
my $self = shift;
return "My::Util::$sub"->( @_ );
}
}
}
bless {} => $class;
}
Вы также можете передавать функции (например, подпрограммы) в шаблон следующим образом:
use strict;
use warnings;
use List::Util ();
use Template;
my $tt = Template->new({
INCLUDE_PATH => '.',
});
$tt->process( 'not_plugin.tt', {
divider => sub { '=' x $_[0] },
capitalize => sub { ucfirst $_[0] },
sum => sub { List::Util::sum( @_ ) },
});
not_plugin.tt
[% divider( 40 ) %] Hello my name is [% capitalize( 'barry' ) %], how are u today? The ultimate answer to life is [% sum( 10, 30, 2 ) %] [% divider( 40 ) %]
выдаст следующее:
======================================== Hello my name is Barry, how are u today? The ultimate answer to life is 42 ========================================