2
我想在Mojolicious中创建一个递归模板块以从嵌套数组生成复杂菜单。在Mojolicious中创建递归模板块
理想地,阵列["a", ["ba", "bb"], "c"]
将导致此嵌套列表:
<ul>
<li>a</li>
<li>
<ul>
<li>ba</li>
<li>bb</li>
</ul>
</li>
<li>c</li>
</ul>
下面的代码不工作,因为块是匿名的子程序而不能使用自己的引用:
% my $block = begin
% my $menu = shift;
<ul>
% foreach my $item (@{$menu}){
% if(ref($item) eq 'ARRAY') {
<li>
%= $block->($item);
</li>
% } else {
<li><%= $item %></li>
% }
% }
</ul>
% end
%= $block->(["a", ["ba", "bb"], "c"])
@ikegami,谢谢,我已经更新了我的答案 – 2014-10-09 03:58:44
非常感谢你的伟大的解决方案(S)和优异的解释! – PJVolders 2014-10-09 11:47:50