我正在从查询中返回数据。遍历结果并将数据推入不同的数组中。 当我尝试循环遍历数组时,我只会得到第一组数据,而没有其他任何信息。
my @data = ();
for my $row (@$query_data) {
if($row->[11] == 2)
{
push(@data,$row)
}
}
在perl脚本上,以下工作正常,并且我得到了预期的输出。
for my $row (@xm_data) {
print "$row->[6]\n";
}
输出
mike
steve
当我或多或少地做同样的事情时,我会得到不同的结果。我正在传递渲染外观xm_data => @xm_data
,并且只得到第一个结果。
模板循环如下。
% for my $request_data (@{$xm_data}) {
<%= $request_data %>
% }
如果我尝试在.pl
文件中使用相同的语法,则会出错。
答案 0 :(得分:3)
我对Mojolicious一无所知,但我知道一些Perl。
您的xm_data => @xm_data
对我来说可疑。如果在perl中将数组分配给标量,则仅采用该数组的第一个元素。要将指针分配给数组,看起来就像您要尝试的那样,您需要使用反斜杠。
例如。 xm_data => \@xm_data
。
这将为您提供对数组的引用,然后您可以稍后在foreach
循环中取消引用,就像您已经在做的那样。
有帮助吗?