3

我无法理解为什么以下代码不起作用。

<%method getvivekBox>
  <%args>
   $BoxName
  </%args>

  <%perl>
    return {
      type        => 'vivek',
    };
  </%perl>
</%method>




<%method getAll>
 <%args>
  $BoxGroup
  $indexex
 </%args>
  <%perl>
    my $x =  map { $m->comp('SELF:getvivekBox' , BoxName => "$BoxGroup-$_"); } @$indexex;

    return $x;
  </%perl>
</%method>

我打电话getAll给参数,框和(1..10)。它返回 11 但对我来说预期的行为应该返回 10 个元素。

4

1 回答 1

3

map在一个列表上产生另一个列表。您将 的结果分配map给一个标量,从而获得分配给 的元素数量$x

更改$x@x,或放在[]周围map(以进行$x数组引用)。

于 2015-02-11T18:19:33.140 回答