fetchall_arrayref中的foreach值

Blu*_*eni 3 perl dbi

我正在尝试为fetchall_arrayref中的每个值执行一个foreach循环,并且遇到了一些麻烦.

我有:

my $list = $sth->fetchall_arrayref({});
print Dumper($list);
Run Code Online (Sandbox Code Playgroud)

这给了我:

$VAR1 = [
          {
            'ID_NUMBER' => '123'
          },
          {
            'ID_NUMBER' => '456'
          },
          {
            'ID_NUMBER' => '5666'
          },
          {
            'ID_NUMBER' => '45645'
          },
          {
            'ID_NUMBER' => '23422'
          }
        ];
Run Code Online (Sandbox Code Playgroud)

我不知道如何格式化我的foreach循环打印每个id_number的值.最终我想用每个值运行一个查询,但是一旦我开始工作,我就可以想出来.

谢谢你的帮助.

sim*_*que 6

你应该使用,fetchrow_hashref而是分别做每一个.这将使它更具可读性,并且从数据库的角度来看它不会影响性能.

while (my $res = $sth->fetchrow_hashref) {
  print Dumper $res;
  $sth2->execute($res->{ID_NUMBER});
}
Run Code Online (Sandbox Code Playgroud)

如果你想用它做fetchall_arrayref,它会像这样工作:

my $list = $sth->fetchall_arrayref({});
foreach my $res (@{ $list }) {
  $sth2->execute($res->{ID_NUMBER});
}
Run Code Online (Sandbox Code Playgroud)