http://www.perlmonks.org?node_id=416983

punkish has asked for the wisdom of the Perl Monks concerning the following question:

I have a program that processes emails and extracts info from them. I have been storing all the config info, and the log of actions (datetime, info about the emails, success of processing, total number of messages processed, etc.) in text files thus far. Works mostly fine.

I have been refining this work, and am considering moving all of the above to a more structured db. The first obvious answer is SQLite... everything self- contained, blah blah. However, I have been trying Bdb (using just DB_File). Works fine with the little mods I have made thus far, e.g., moving the config info from the text file to a file-based hash.

I've also built a web-based interface to set the config values, but eventually I would build one to also monitor the progress of the program. The kind of questions that I would like answered would be --

config params: hash total number of messages processed: int total number of messages processed today: int total number of messages processed in this run: int total number of messages processed between ? and ?: int started program on: datetime action record: array of hashes

I seek the following wisdom: is Bdb a good or even a possible tool here?

On a related note -- I find the whole concept of Bdb very fascinating. Perhaps because it is a novelty to me after years of getting bored by rdbms and SQL. However, I find little or no discussion of using Bdb as the backend of websites. The reasons seem obvious -- Bdb is not relational, and while some relational stuff can be emulated, well, heck, it was just not designed to answer the kind of questions a rdbms can. Still, there is something elegant about everything being contained in a hash that can be loaded in memory, all self-contained, clean... like a single, shiny object.

Any insights?