遍历数据库结果

时间:2019-09-26 18:56:33

标签: perl mojolicious

我正在从查询中返回数据。遍历结果并将数据推入不同的数组中。 当我尝试循环遍历数组时,我只会得到第一组数据,而没有其他任何信息。

 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文件中使用相同的语法,则会出错。

1 个答案:

答案 0 :(得分:3)

我对Mojolicious一无所知,但我知道一些Perl。

您的xm_data => @xm_data对我来说可疑。如果在perl中将数组分配给标量,则仅采用该数组的第一个元素。要将指针分配给数组,看起来就像您要尝试的那样,您需要使用反斜杠。

例如。 xm_data => \@xm_data

这将为您提供对数组的引用,然后您可以稍后在foreach循环中取消引用,就像您已经在做的那样。

有帮助吗?