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).