I'm sorry that I misunderstood your problem. I thought that your statement:
The hard part seems to be communicating with children, with one child, I would probably use STDIN/STDOUT, servers like apache have symmetrical children, so I'm kind of lost as to what is the best way to do something like that.
implied that your children are not symmetrical and maybe even distributed across machines, and that children die-ing from unknown reasons might be common.
Maybe you should discuss the scope of your program in the original post to some larger extent - I found DBD::SQLite a very convenient, lightweight and self-contained database, for example.