我有一些字符串,我从数据库中提取出来,我想在它们上使用Template Toolkit,但我似乎无法弄清楚如何使用字符串作为TT输入。有什么提示吗?
谢谢!
-fREW
答案 0 :(得分:11)
文档说明:
进程($ template,\%vars,$ output,%options)
调用process()方法来处理模板。第一个参数表示输入模板为以下之一:相对于INCLUDE_PATH的文件名,如果已定义; 对包含模板文字的文字字符串的引用; ...
# text reference
$tt->process(\$text)
|| die $tt->error(), "\n"
答案 1 :(得分:4)
来自docs:
# text reference
$text = "[% INCLUDE header %]\nHello world!\n[% INCLUDE footer %]";
$tt->process(\$text)
|| die $tt->error(), "\n";
(看起来我应该在发布之前刷新页面。)
答案 2 :(得分:2)
您可能会发现String::TT是一种更好的替代方式。来自豆荚的一些戏弄者......
use String::TT qw/tt strip/;
sub foo {
my $self = shift;
return tt 'my name is [% self.name %]!';
}
sub bar {
my @args = @_;
return strip tt q{
Args: [% args_a.join(",") %]
}
}
和...
my $scalar = 'scalar';
my @array = qw/array goes here/;
my %hash = ( hashes => 'are fun' );
tt '[% scalar %] [% scalar_s %] [% array_a %] [% hash_h %]';