如何在独立的 Perl 脚本中使用 Mojolicious 渲染?
How can I use Mojolicious rendering in a standalone Perl script?
我想在发送电子邮件的独立脚本中使用 Mojolicious 渲染引擎渲染 .html.ep
模板,并且 运行 来自 cron:
#!/usr/bin/perl
use feature ':5.10';
use Mojo::Base -strict;
use Mojolicious::Renderer;
use Data::Dumper;
my $renderer = Mojolicious::Renderer->new();
push @{$renderer->paths}, '/app/templates';
my $template = $renderer->get_data_template({
template => 'template_name',
format => 'html',
handler => 'ep'
});
print Dumper($template) . "\n";
但是,$template
始终未定义。
模板文件是/app/templates/template_name.html.ep
。
我做错了什么?
您正在使用 Mojo::Renderer 中的 get_data_template
,它用于从当前源代码文件的 __DATA__
部分加载模板。
其实Mojo::Renderer是错误的用法。您想要 Mojo::Template,stand-alone 模板引擎作为模块。
use Mojo::Template;
my $mt = Mojo::Template->new( vars => 1 );
my $email_body = $mt->render_file( 'test.html.ep', { one => 1, two => 2 } );
say $email_body;
与test.html.ep:
The magic numbers are <%= $one %> and <%= $two %>.
输出:
The magic numbers are 1 and 2.
option vars
很重要,因此它接受命名变量而不是参数列表。
我想在发送电子邮件的独立脚本中使用 Mojolicious 渲染引擎渲染 .html.ep
模板,并且 运行 来自 cron:
#!/usr/bin/perl
use feature ':5.10';
use Mojo::Base -strict;
use Mojolicious::Renderer;
use Data::Dumper;
my $renderer = Mojolicious::Renderer->new();
push @{$renderer->paths}, '/app/templates';
my $template = $renderer->get_data_template({
template => 'template_name',
format => 'html',
handler => 'ep'
});
print Dumper($template) . "\n";
但是,$template
始终未定义。
模板文件是/app/templates/template_name.html.ep
。
我做错了什么?
您正在使用 Mojo::Renderer 中的 get_data_template
,它用于从当前源代码文件的 __DATA__
部分加载模板。
其实Mojo::Renderer是错误的用法。您想要 Mojo::Template,stand-alone 模板引擎作为模块。
use Mojo::Template;
my $mt = Mojo::Template->new( vars => 1 );
my $email_body = $mt->render_file( 'test.html.ep', { one => 1, two => 2 } );
say $email_body;
与test.html.ep:
The magic numbers are <%= $one %> and <%= $two %>.
输出:
The magic numbers are 1 and 2.
option vars
很重要,因此它接受命名变量而不是参数列表。