Every module that can tie a hash to some persistence mechanism has pros and cons. It not only depends on the size of your data or the number of elements in the hash, but also on the usage of the hash. How do reads compare to writes? Is it write once, read often? Is the reason to tie resource limits or is it persistence?
YMMV across architectures and the type of data stored.
See this table, this table, this graph, this graph, this graph, and this graph for speed comparisons. It compares DB_File with other serializer modules. I wanted to see the results after I wrote Tie::Hash::DBD that I created after I ran into serious trouble when DB_File hit resource limits and caused data corruption.
Enjoy, Have FUN! H.Merijn