加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – Template Toolkit中的有效变量名称

发布时间:2020-12-16 06:06:26 所属栏目:大数据 来源:网络整理
导读:我正在使用perl和Template :: Toolkit生成一些文本.在perl程序中,我定义了一个哈希引用,例如 my $user = { "user-name" = "John" }; 并将其传递给Template :: Toolkit,以便使用模板文件生成John.在我写的模板文件中 [% user-name %] 但遗憾的是,用户名似乎被
我正在使用perl和Template :: Toolkit生成一些文本.在perl程序中,我定义了一个哈希引用,例如

my $user = { "user-name" => "John" };

并将其传递给Template :: Toolkit,以便使用模板文件生成John.在我写的模板文件中

[% user-name %]

但遗憾的是,用户名似乎被Template :: Toolkit识别为减法表达式(用户减去名称).

为了证实我的怀疑,我查看了the manual的Template :: Toolkit,找到了在变量名中使用的有效标记但却一无所获.

所以我的问题是:

>你能给出变量名称的有效令牌列表吗?
模板::工具包?
>我可以在模板文件中使用一些“转义方法”,以便
perl程序中的变量名可以保留用户名吗?

解决方法

通常,有效的perl变量是有效的模板工具箱变量.

>变量应始终以非数字,非符号字符[A到Z和_]开头
>变量只能包含a到z,0到9和_(下划线)字符.
>变量名称不能包含特殊符号(包括“ – ”符号).

例如:

$user-name不是有效的perl变量.但
$user_name有效.

以下是perl解释器为您的代码抛出的内容

$my $user = { user-name => "John" };                                                                                                      
Compile error: Bareword "user" not allowed while "strict subs" in use at (eval 294) line 5.

如果你真的想使用’user-name’,你应该这样定义

$my $user = { "user-name" => "John" };      
$my $data = { user => $user };

你应该在你的tt2文件中访问它,如下所示:

[% user.item('user-name') %]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读