Как узнать, сколько ключей в Беркли БД (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
,