【发布时间】:2017-12-16 04:43:21
【问题描述】:
我正在使用 perl DBI 模块以数组格式从数据库中获取数据。到目前为止,我的代码如下所示:
$rows = $dbh->selectall_arrayref("show SELECT * FROM table SAMPLE 3");
foreach $h (@$rows) {
foreach $x (@$h) {
printf "%s\n", $x;
}
}
在调试模式下中断后,我看到的数据如下:($h)
0 ARRAY(0x32c40f8)
0 "CREATE SET TABLE (my contents....)
我的问题是: 1. 我怎么知道数组有多大? 2.如何打印我想要的所有内容 - “CREATE SET TABLE(我的内容......) 请有人提出一些想法,谢谢...
【问题讨论】:
-
我试过了,行数是1。我如何得到长度?它不是水平数组而是垂直的,输出看起来像这样:
0 0 ARRAY(0x32c40f8) 0 "CREATE SET TABLE (my contents....)
-
我认为它是引用上下文的引用。抱歉,我无法正确格式化结果集,但它就像一个楼梯,下面有 3 个步骤:0(之后没有)第一行,然后是 ARRAY(0x32c40f8)(在第二行,向右移动两个空格),最后是我的内容在第 3 行,但向右移动了 3 个空格。
-
您是否在问如何获取您引用的数组中的元素数?
@$ref在标量上下文中。 -
您可能想从 SQL 中删除
show -
我已经修复了您代码中的缩进。不客气,但请以后自己做。良好的缩进是理解一段代码的重要工具。如果您要让一大群陌生人阅读和理解您的代码,那么让他们尽可能简单是礼貌的做法。