我正在使用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有效.
$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') %]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。