Как узнать, сколько ключей в Беркли БД (Perl)? - PullRequest
0 голосов
/ 28 ноября 2010

Мне просто нужно выяснить, сколько элементов у меня есть в этом хэше, и я просматриваю документы, но единственное, что может дать мне это, это db_stat, и под ним есть TODO.

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

Так что, кроме создания курсора и анализа всего этого, как я могу увидеть, сколько ключей в хэше?

Ответы [ 2 ]

1 голос
/ 28 ноября 2010

Кажется, что нашел ответ здесь:

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

Имена многих различных переменных, установленных при вызове db_stat, включая ту, которую я искал, 'hash_ndata', которая даетколичество пар ключ-значение.

0 голосов
/ 29 ноября 2010

Вы можете 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.

...