I'm in the same situation where some of my data needs to be shared among all apache processes, and the data can change. For that I use
IPC::Shareable to put the data in shared memory segment. This has been running fine for me, but I don't like the fact that I have no control on the number of shared segments and the semaphores they use. I'm moving towards database cache. Since IPC::Shareable internally uses
Storable, which isn't that fast despite the fact that it's in memory, for my purpose mysql gives about the same performance.