Простая, современная, надежная, прозрачная персистентность структур данных для Perl

Я ищу решение прозрачно сохранения структур данных 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 для экспорта в удобочитаемый формат.

Итак, мне не хватает модуля? и правильно ли я подхожу к проблеме?

12
задан Cœur 3 March 2019 в 13:28
поделиться