0

我只需要找出我在这个哈希中有多少元素,我正在查看文档,但唯一可能给我的是 db_stat,它下面有一个 TODO。

http://search.cpan.org/dist/BerkeleyDB/BerkeleyDB.pod#Using_db_stat

所以除了创建一个游标并解析整个事情之外,我怎样才能看到哈希中有多少键?

4

2 回答 2

1

似乎在这里找到了答案:

http://download.oracle.com/docs/cd/E17076_02/html/api_reference/C/dbstat.html

命名调用 db_stat 时设置的许多不同变量,包括我正在寻找的一个,'hash_ndata',它给出了键值对的数量。

于 2010-11-28T06:07:15.237 回答
0

您可以tie将一个 bdb 数据库进行哈希,然后检查哈希中的键数。当在标量上下文中使用时,该keys函数将为您提供散列中的键数。

use DB_File;
our %dbHash;

yadda, yadda, yadda;
tie (%dbHash, "DB_File", $dbFileName);
print "The number of keys in $dbFileName is " . keys(%dbHash) . "\n";

不幸的是,我无法对此进行测试,因为我的系统上没有 dbd。我相信你必须使用包变量来处理tie.

于 2010-11-29T17:23:41.553 回答