in reply to perl native db
I, too, would recommend SQLite ... and let me make one very important point: you must use transactions. It will make quite a dramatic difference in performance, and here’s why. If a transaction is in progress, SQLite will do “lazy writes.” If not, it will verify every disk write by re-reading the data. This is the system’s very deliberate and very sensible design, but it is a crucial performance “gotcha.”
SQLite is completely platform-independent and, believe it or not, it is in the public domain. When used “properly,” as noted above, it provides excellent power and performance. It’s easily the very best “server-free one-flat-file database” you’re gonna find anywhere (and therefore, everywhere).