简单,现代,强大,透明的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 到目前为止,我已经看过: > Dave Rolsky的Perl Object-Oriented Persistence模块汇编 – 自2003年以来没有更新 我只找到一个有希望的模块,DBM::Deep.代码就像在示例中一样,你可以加载数据结构 my $ds = DBM::Deep->new( "myfile.db" ); 虽然格式是二进制的.不是一个大问题,因为我可以使用JSON以人类可读的格式导出它. 所以,我错过了一个模块,我正在正确地解决问题吗? 解决方法
为了实现“透明度”目标,您将不得不将其抽象为一个框架(如chambwez建议),或者使用绑定的变量,这些变量将在自动更新时自动保存到磁盘中. DBM哈希用这种方式使用,所以DBM :: Deep可能是你最好的选择;我所知道的一切都需要你明确地告诉它什么时候以性能的名义写出数据和/或缓存写入.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |