我正在转换模板工具包文件,例如Pieces成为[% l('Pieces') %].
我遇到了一个问题.什么是正确的转换'Title'?这不正确:[% l(''Title'') %]
总之,如何逃避'?
简单的问题:
我如何在一行上执行此操作:
my $foo = $bar->{baz};
fizz(\$foo);
Run Code Online (Sandbox Code Playgroud)
我试过了\ $ bar - > {baz},\ $ {$ bar - > {baz}}等等.这甚至可能吗?
-fREW
更新:好的,hashref来自DBI,我将标量引用传递给模板工具包.我想现在我更仔细地看待这个问题与TT如何做到这一点有关.实际上,我想说:
$template->process(\$row->{body}, $data);
Run Code Online (Sandbox Code Playgroud)
但TT没有那样工作,TT采用标量参考并将数据放在那里,所以我必须这样做:
$template->process(\$row->{body}, $shopdata, \$row->{data});
Run Code Online (Sandbox Code Playgroud)
无论如何,谢谢你的帮助.我至少只有一个参考而不是两个.
在我的模板(via Template Toolkit)中,我传递一个DateTime对象(来自DBIx::Class和 DBIx::Class::InflateColumn::DateTime).我可以在我的模板中执行obj.year和所有其他DateTime操作.但是对象在我的自定义过滤器中被字符串化.我基本上调用[% user.last_visited_date | time_ago %]time_ago是一个自定义过滤器,基本上看起来像这样:
sub timeago {
sub { my $datetime_obj = shift; #do more work }
}
Run Code Online (Sandbox Code Playgroud)
在这里我期待自定义过滤器中的DateTime obj,但它是stringify ..
我该如何解决这个问题?
我在Dancer中有一个非常简单的问题:我有一系列名字,我想在模板中打印每一个.这些名称来自外部源(不是数据库).但是,当我尝试对模板中的列表进行foreach时,我只得到第一个值.
码:
use Dancer;
use Template;
set 'template' => 'template_toolkit';
get '/' => sub {
my @list = ("one","two","three");
template 'list.tt', {
'values' => @list,
};
};
dance;
Run Code Online (Sandbox Code Playgroud)
和模板:
<ul>
<%FOREACH item IN values %>
<li><% item %></li>
<%END%>
</ul>
Run Code Online (Sandbox Code Playgroud)
这仅输出具有单个项目"一个"的列表.我错过了什么?
我想在Template-toolkit中显示周数和日期插件的日期.今天的输出将是这样的:
36 Monday
Run Code Online (Sandbox Code Playgroud)
我用以下代码得到了周数:
[% USE date(format = '%W' ) %]
[% date.format %]
Run Code Online (Sandbox Code Playgroud)
仍在努力弄清楚如何获得工作日.
我有一个变量
var1 = {
'*' = > {
'counter' = > {
'default' = > '0',
'description' = > 'test'
}
}
}
Run Code Online (Sandbox Code Playgroud)
在perl模板工具包中.如何访问模板中的"*"内容.
[% var1.*.counter %]
Run Code Online (Sandbox Code Playgroud)
因为符号没有有效名称而无效.