使用Mason从模板(而非网络)生成一些输出。
需要从Mason组件生成输出,其中输出行应以%
字符开头。
因为Mason组件中行开头的%<space>
是作为perl命令执行的,所以我现在使用:
<% $perc %> the remaining content of the line.
并且$ perc在%init
部分中定义为my $perc = '%';
上述工作,但对于很多行来说,这是一个可怕的解决方案。
问题:是否有可能在某些行包含&#39;%&#39;该行开头的字符?
答案 0 :(得分:2)
基于对话是Mason邮件列表,唯一可行的解决方案是编写自定义过滤器。 (遗憾的是,“自然”双%%
或转义\%
无效,可能永远不会添加到基本的Mason语法中。)
以下梅森过滤器有效,
<%filter unesperc><% $yield->() =~ s/^\\%/%/gmr %></%filter>
e.g。来自
% $.unesperc {{
\%hello
% for my $i (1..3) {
\% test <% $i %>
% }
\%hello2
% }}
将产生所需输出的输出。
%hello
% test 1
% test 2
% test 3
%hello2