If you find using a dbm file constraining, you might look at
MLDBM, which allows you to store complex Perl data structures in one, or
DBD::SQLite, which gives you an embedded SQL database. Also, keep in mind that SDBM_File has a rather small limitation on the size of a record.