Я ищу решение прозрачно сохранения структур данных Perl (даже не объектов, но поддержка объектов была бы плюсом) без циркулярные ссылки. Бэкэнд меня не особо волнует, но я бы предпочел JSON. Количество объектов будет относительно небольшим (несколько тысяч хэш-адресов примерно по 5 ключей в каждом). Под "прозрачной" настойчивостью я подразумеваю, что я не Я не хочу фиксировать изменения в бэкэнде хранилища каждый раз, когда я обновляю структуру данных в памяти.
Вот как в идеале должен выглядеть код:
my $ds;
...
# load the $ds data structure from 'myfile'
print $ds->{foo}->{bar}; # baz
$ds->{foo}->{bar} = 'quux';
... program dies, but the updated %hash has been persisted automatically in 'myfile'
# in another invocation
print $ds->{foo}->{bar}; # quux
На данный момент я посмотрел:
Я нашел только один многообещающий модуль, DBM :: Deep . Код такой же, как в примере, и вы можете загрузить структуру данных с помощью
my $ds = DBM::Deep->new( "myfile.db" );
Однако формат двоичный. Это не большая проблема, поскольку я могу использовать JSON для экспорта в удобочитаемый формат.
Итак, мне не хватает модуля? и правильно ли я подхожу к проблеме?