使用Perl的DBI,如何加入fetchrow_arrayref的结果?

Sip*_*oon 2 perl dbi

我是Perl的新手,我正在编写一个脚本来从数据库中获取一些行:

my @rows = $conn->fetchrow_array(1,2,3);
Run Code Online (Sandbox Code Playgroud)

结果将是三行单列.

12345
56789
12376
Run Code Online (Sandbox Code Playgroud)

我应该如何将他们加在一起呢 12345,56789,56789

我试过了,

my $list = join ",", @rows. 
Run Code Online (Sandbox Code Playgroud)

结果: ARRAY(0x14f6de0),ARRAY(0x1508a90),ARRAY(0x15014c0)

通过foreach循环只需用新行打印结果:

12345
56789
12376
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?我有fetchrow_array错误的概念吗?

Sin*_*nür 6

每行都是对数组的引用(因为每行可以包含多个列).像下面这样的东西应该工作.

#!/usr/bin/perl

use strict; use warnings;

my @rows = (
    [ 12345 ],
    [ 56789 ],
    [ 12376 ],
);

my @vals = map @$_, @rows;

print join(',', @vals), "\n";
Run Code Online (Sandbox Code Playgroud)

但是,您最好使用selectcol_arrayref:

此实用程序方法将"准备","执行"和从所有行中的一列提取到一个调用中.它返回对包含每行第一列值的数组的引用.