MLDBM is a good approach. You can use
MLDBM::Sync for multi-process concurrent access. You could also look at
Cache::Cache which provides various storage options. Finally, you might consider using
SPOPS, which supports dbm files but would also allow you to move your objects to an RDBMS pretty simply later on.