in reply to best database

The difference between using a DBM and a relational database is the framework that the relational database provides for managing relationships between different kinds of data. If you've never used a relational database, your learning curve will be shorter with a DBM. However learning how to use relational databases definitely pays off over time.

However if you want to use DBMs, I'd suggest using a better one. The one that comes with Perl is SDBM_File, and it has serious limitations. In particular the length of a key/value pair tops out at 1008 bytes. If you use something like DB_File, you'll get rid of that limit.

An incidental tip. Don't worry start to finish about efficiency. That's premature optimization. Instead aim to build it with a sane architecture, and then be prepared to try to optimize it after the fact.