生成梅森输出,其中输出行应以 % 字符开头

  • 本文关键字:输出 开头 字符 perl mason
  • 更新时间 :
  • 英文 :


使用Mason从模板(而不是Web)生成一些输出。

需要从 Mason 组件生成输出,其中输出行应以%字符开头。

因为 Mason 组件中行首的%<space>是作为 perl 命令执行的,所以目前我使用的是:

<% $perc %> the remaining content of the line.

$perc在%init部分中定义为my $perc = '%';

以上有效,但对于许多行来说,这是一个糟糕的解决方案。

问题:是否有可能在某种程度上生成 Mason 输出,其中某些行在行首包含"%"字符?

基于对话是梅森邮件列表,唯一有效的解决方案是编写自定义过滤器。(不幸的是,"自然"双%%或转义%不起作用,可能永远不会添加到基本的 Mason 语法中。

以下梅森过滤器工作,

<%filter unesperc><% $yield->() =~ s/^\%/%/gmr %></%filter>

例如,从

% $.unesperc {{
%hello
% for my $i (1..3) {
% test <% $i %>
% }
%hello2
% }}

将产生所需的输出。

%hello
% test 1
% test 2
% test 3
%hello2

相关内容

  • 没有找到相关文章

最新更新