Как узнать, сколько ключей в Беркли БД (Perl)?

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

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

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

2 ответа

Решение

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

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,

Другие вопросы по тегам