我是Perl的新手,我正在编写一个脚本来从数据库中获取一些行:
my @rows = $conn->fetchrow_array(1,2,3);
结果将是三行单列。
12345
56789
12376
我应该如何将他们作为
12345,56789,56789
一起加入我试过了,
my $list = join ",", @rows.
结果:
ARRAY(0x14f6de0),ARRAY(0x1508a90),ARRAY(0x15014c0)
通过
foreach
循环只需用新行打印结果:12345
56789
12376
我究竟做错了什么 ?我对
fetchrow_array
的概念有误吗? 最佳答案
每行都是对数组的引用(因为每行可能包含多列)。像下面这样的东西应该起作用。
#!/usr/bin/perl
use strict; use warnings;
my @rows = (
[ 12345 ],
[ 56789 ],
[ 12376 ],
);
my @vals = map @$_, @rows;
print join(',', @vals), "\n";
但是,最好使用
selectcol_arrayref
:此实用程序方法将“准备”,“执行”和从所有行中提取一列组合到一个调用中。它返回对包含每行第一列值的数组的引用。