我只需要找出我在這個散列中有多少元素,並且正在查看文檔,但唯一可能會給我的是db_stat,並且下面有一個TODO。如何查看Berkeley DB(Perl)中有多少個密鑰?
http://search.cpan.org/dist/BerkeleyDB/BerkeleyDB.pod#Using_db_stat
所以不是創建一個遊標並通過整個事情的解析等,我怎麼能看到多少個鍵是哈希?
我只需要找出我在這個散列中有多少元素,並且正在查看文檔,但唯一可能會給我的是db_stat,並且下面有一個TODO。如何查看Berkeley DB(Perl)中有多少個密鑰?
http://search.cpan.org/dist/BerkeleyDB/BerkeleyDB.pod#Using_db_stat
所以不是創建一個遊標並通過整個事情的解析等,我怎麼能看到多少個鍵是哈希?
似乎有答案這裏找到:當db_stat被稱爲
http://download.oracle.com/docs/cd/E17076_02/html/api_reference/C/dbstat.html
名稱很多不同的變量設置,包括一個我一直在尋找,「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
。