有没有办法比较Template Toolkit中的两个变量?

Dev*_*tas 4 perl template-toolkit

[% IF OrgType.id == Organization.org_type_id %]selected="selected"[% END %] 
Run Code Online (Sandbox Code Playgroud)

即使它们都评估相同的数字也不起作用.

[% IF OrgType.id == 3 %]selected="selected"[% END %] 
Run Code Online (Sandbox Code Playgroud)

(即用于测试目的的硬编码)确实有效.

[% OrgType.id %] and [% Organization.org_type_id %] 
Run Code Online (Sandbox Code Playgroud)

两者都在页面上打印"3".

fri*_*edo 10

以下适用于我:

 my $tt = Template->new; 
 $tt->process( \"[% IF foo == bar %]blah[% END %]", { foo => 42, bar => 42 } );
Run Code Online (Sandbox Code Playgroud)

那输出'等等'.所以我怀疑你的两个变量不包含你认为他们做的事情.Template Toolkit使用字符串相等==,所以如果你这样做:

 my $tt = Template->new; 
 $tt->process( \"[% IF foo == bar %]blah[% END %]", { foo => 42, bar => "42 " } );
Run Code Online (Sandbox Code Playgroud)

它会破裂.您可能需要稍微按下数据以使它们在字符串相等的情况下正常工作.