如何在Mojolicious模板中使用新的语法功能

fri*_*edo 9 perl mojolicious

我想在我的Mojo模板中使用花哨的后缀解除引用.我想我能做到

% use experimental 'postderef';
Run Code Online (Sandbox Code Playgroud)

在每个模板文件的顶部,但这似乎重复和跛脚.有没有办法让Mojolicious将我的pragma首选项导入每个模板的词法范围?

小智 6

您可以使用自己的选项重新加载EPRenderer插件(默认是没有选项),选项template包含Mojo :: Template的默认值.

use Mojolicious::Lite;

plugin 'EPRenderer', template => { prepend  => 'use experimental "postderef";use Data::Dump "pp";'};

get '/' => sub { shift->render('index'); };

app->start;
__DATA__

@@ index.html.ep
% layout 'default';
% title 'Welcome';

Welcome to the Mojolicious real-time web framework!

% my $a = [[0]];
% push $a->[0]->@*, 1;
%=  pp($a)

@@ layouts/default.html.ep
<!DOCTYPE html>
<html>
  <head><title><%= title %></title></head>
  <body><%= content %>

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)