我只需要找出我在这个哈希中有多少元素,我正在查看文档,但唯一可能给我的是 db_stat,它下面有一个 TODO。
http://search.cpan.org/dist/BerkeleyDB/BerkeleyDB.pod#Using_db_stat
所以除了创建一个游标并解析整个事情之外,我怎样才能看到哈希中有多少键?
我只需要找出我在这个哈希中有多少元素,我正在查看文档,但唯一可能给我的是 db_stat,它下面有一个 TODO。
http://search.cpan.org/dist/BerkeleyDB/BerkeleyDB.pod#Using_db_stat
所以除了创建一个游标并解析整个事情之外,我怎样才能看到哈希中有多少键?
似乎在这里找到了答案:
http://download.oracle.com/docs/cd/E17076_02/html/api_reference/C/dbstat.html
命名调用 db_stat 时设置的许多不同变量,包括我正在寻找的一个,'hash_ndata',它给出了键值对的数量。
您可以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
.