String 有人对如何使用perl模板模块有完整的解决方案/演练吗?
@neuhaus在template-toolkit.org网站上向我指出 以下是我一直试图运行/处理的来自CPAN的代码:String 有人对如何使用perl模板模块有完整的解决方案/演练吗?,string,perl,template-engine,String,Perl,Template Engine,@neuhaus在template-toolkit.org网站上向我指出 以下是我一直试图运行/处理的来自CPAN的代码: #!/usr/bin/env perl use lib ('./t/lib/'); use strict; use warnings; use Template; use Test::More tests => 1; my $text = "This is string number [% num %] ."; my $vars = {
#!/usr/bin/env perl
use lib ('./t/lib/');
use strict;
use warnings;
use Template;
use Test::More tests => 1;
my $text = "This is string number [% num %] .";
my $vars = {
num => "one",
};
my $template = Template->new();
$template->process($text, $vars)
|| die "Template process failed: ", $template->error(), "\n";
ok(defined $text, 'Returns something');
我收到以下错误:
Template process failed: file error - This is string number [% num %] . : not found
我现在只是在一个测试文件中运行它,以防你们想知道 查看以下网址的教程:
特别是这一部分
您可能会发现它非常有用,并且在模板
是通往
- 使用模板工具包生成Web内容
- 使用模板工具包创建数据输出文件
模块在上有自己的网站,但文档中只有安装包中POD的镜像中的
过程()
方法的定义如下:
第一个参数将输入模板指示为以下之一:文件名
相对于包括路径
,如果已定义;对文本字符串的引用
包含模板文本;或文件句柄引用(例如。
IO::Handle
或子类)或GLOB
(例如\*STDIN
),从中
模板可以读取
如果向其传递字符串,则假定它是包含模板的文件的名称。如果要向其传递包含实际模板的字符串,则需要传递对字符串的引用
所以你的台词是:
$template->process($text, $vars)
需要:
$template->process(\$text, $vars)
错误消息是一个很好的线索。它告诉您找不到名为“This is string number[%num%]”的文件。该部分似乎与我想做的非常相似。但是我有错误。我将立即更新问题中的代码。Re。“我只看到了与Template::Toolkit相关的答案,我们的系统上似乎没有这个答案。”(编辑之前)Template::Toolkit只是包含Template.pm的发行版。这不是一个单独的模板系统。是的,我意识到了<代码>使用模板::Toolkit在此系统上不起作用。我不知道为什么…它不起作用,因为
使用Template::Toolkit
在模板目录中查找文件Toolkit.pm,但没有Toolkit.pm。你必须做使用模板代码>唯一真正的傻瓜是害怕问的人。@PaulRussell:Stack Exchange不同于常规论坛或博客。虽然可以在问题中添加澄清信息,或纠正键入错误,但将问题变形到远离原始形式是不合适的,主要是因为它通常会使更改前发布的评论和解决方案变得毫无意义。如果你从最初的问题中获得启发,但遇到了新的绊脚石,那么你应该提出一个新问题。