我无法理解为什么以下代码无效。
<%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个元素。
答案 0 :(得分:3)
map
会生成另一个列表。您要将map
的结果分配给标量,从而获得分配给$x
的元素数。
将$x
更改为@x
,或将[]
放在map
周围(使$x
成为数组引用)。