Perl Mason2通过阵列和哈希



我正在尝试将mason2与舞者和琐碎的情况(例如将字符串传递到模板传递起来)正常工作:

get '/foo', sub {
    template 'foo' => {
        title => 'bar'
    };
  };
    <%args>
    $.title
    </%args>
    <h1><% $.title %></h1>

所以,这在起作用。当我想将哈希或数组之类的东西传递给模板时,就开始了麻烦。当我将此数组传递到模板时:

template 'index', {  cats=> [{id=>1,title=>'Cat1'},{id=>2,title=>'Cat2'}]};

并在模板中设置为

<%args>
$.cats
</%args>

我不能像这样循环通过此数组:

<ul>
% foreach my $cat ($.cats){
<li><% $cat %></li>
% } 
</ul>

$ cat对象与$ .cats对象,一个数组相同。我不确定我做错了什么。

谢谢。

borodin是完全正确的。$.cats是数组参考;要循环遍历元素,您必须将其解释:

<%args>
$.cats
</%args>
<ul>
% foreach my $cat ( @{$.cats} ) {
  <li><% $cat->{title} %></li>
% }
</ul>

输出:

<ul>
  <li>Cat1</li>
  <li>Cat2</li>
</ul>

请注意,<% $cat %>在标量上下文中评估$cat并输出它;由于$cat是哈希参考,因此将输出类似HASH(0x4b9fad8)的内容。要从哈希(Hash)输出项目,您必须通过键访问它们,例如<% $cat->{id} %>

相关内容

  • 没有找到相关文章

最新更新