Что-то вроде опроса среди перловодов :)
Хинт: Структура данных периодически (от раза в 15 секунд до раза в 10 минут) изменяется. Размер структуры данных незначительно, но тоже изменяется. Процессы все в рамках одной машины. Но нет, это не процессы в рамках Apache/mod_perl. «Потребители» читают структуру данных целиком, а потом просто получают её апдейты, поэтому хранить её как-то по частям нет никакого смысла.
Варианты ответов:
1) Засунул бы в ключ NoSQL'я (Redis/Tarantool/MongoDB), засериализовав её в JSON/CBOR/BSON/MessagePack и т.д. - нехай кому надо get'ом забирают.
2) Засунул бы в IPC Shared Memory, пусть из оперативы без посредников качают и десериализуют всё как надо
3) Поднял бы сокет UNIX/TCP - и отдавал бы сериализованное всем желающим по запросу
4) Использовал бы какие-нибудь варианты наподобие очередей и b(lpop) в Redis для организации своеобразного RPC на базе NoSQL-ки
5) Использовал бы File::Map или подобные mmap-штуки, сделав файл изначально процентов на 20 больше сериализованной структуры, чтобы учитывать даже самые зверские флуктуации её размера (как тогда «подрезать» считанное из map'а до реального размера, чтобы десериализовать?)
Лично мне милы варианты 1 и 5. А вам?
«Спасибо за внимание, дети мои, с вами был я, Три-дог-найт, на волне вашего любимого Радио, Новости Галактики!» (С)