遍历数据库结果

Iterating through database results

我正在从我的查询中返回数据。循环遍历结果并将数据推送到不同的数组中。 当我尝试遍历数组时,我只得到第一组数据,没有别的。

 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

当我在 mojolicious 中或多或少地做同样的事情时,我得到了不同的结果。我传递给渲染外观 xm_data => @xm_data 并且只得到第一个结果。
模板循环如下。

% for my $request_data (@{$xm_data}) {
    <%= $request_data %>
% }

如果我尝试与 .pl 文件中相同的语法,我会收到错误消息。

我对 mojolicious 一无所知,但我知道一些 perl。

我觉得你的 xm_data => @xm_data 很可疑。如果在 perl 中将一个数组分配给一个标量,它只需要该数组的第一个元素。要将指针分配给数组(看起来您正在尝试这样做),您需要使用反斜杠。

例如。 xm_data => \@xm_data.

这会给你一个数组的引用,然后你可以稍后在你的 foreach 循环中取消引用,就像你已经在做的那样。

有帮助吗?