map perl 从值循环

map perl looping from value

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

<%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)。它是 returning 11,但对我来说预期的行为应该是 return 10 个元素。

列表中的

map 生成另一个列表。您正在将 map 的结果分配给标量,从而获得分配给 $x.

的元素数

$x 更改为 @x,或将 [] 放在 map 周围(使 $x 成为数组引用)。