如何在模板工具包中连接两个变量值

问题描述 投票:0回答:1

我正在模板工具包中进行 concat,但目前我遇到了问题。在我的程序中,我定义了一个具有 switch case 的宏,并且我有从多个变量中获取的 case 值。请找到示例代码

[%- MACRO get_seq(seq) BLOCK %]
[% SWITCH seq -%]
[% CASE '000' -%]
apply seq_0
[% CASE '001' -%]
apply seq_1
[% CASE '010' -%]
apply seq_2
[% CASE '011' -%]
apply seq_3
[% CASE '100' -%]
apply seq_4
[% CASE '101' -%]
apply seq_5
[% CASE '110' -%]
apply seq_6
[% CASE '111' -%]
apply seq_7
[% CASE  -%]
apply seq_z
[% END %]
[% END %]

[% set data1 = '11110000' %]
[% data2 = data1.split('') %]
[% get_seq(data2.7_data2.6_data2.5) %] // Needed get_seq(111)

如何连接7位6位5位数据2

感谢和问候, 瓦伦·库马尔 M S

perl template-toolkit
1个回答
0
投票

TT2 需要在连接运算符周围留有空间:

[% get_seq(data2.7 _ data2.6 _ data2.5) %]

您可能还想考虑这样的方法来避免连接:

[% data1 = '11110000' %]
[% data2 = data1.split('').slice(5,3).reverse.join('') %]
[% get_seq(data2) %]

为了简化调用 MACRO 的逻辑,您可能需要考虑从 MACRO 定义中的字符串中提取

seq

© www.soinside.com 2019 - 2024. All rights reserved.