Perl DBM vs. Storable

时间:2011-12-30 14:02:50

标签: perl serialization dbm

对于我当前的项目,我需要在磁盘上存储一个小数据库,一旦我的程序运行并写入一次,我就会读取它。

我已经研究过perls DBM功能,根据我的理解,它只提供了存储在磁盘上的散列,每次读写都直接进入磁盘。

我的问题是:我是否可以简单地使用Storable或任何相关模块来实现相同的(持久性哈希),而文件I / O开销要少得多? (哈希值永远不会很大,很容易融入记忆中)

此致 尼克

2 个答案:

答案 0 :(得分:2)

SQLite正迅速成为简单的磁盘数据库的标准。在Perl中,您可以使用DBD::SQLite,然后就可以了。

答案 1 :(得分:1)

由于以前的答案并没有真正回答你的实际问题,“是的,你可以”......并提出以下警告:

  • Storable并不适合并发访问。
  • 您需要滚动自己的“原子”更新(即:您需要写入tmp文件,然后重命名)。
  • 如果性能不是真正的问题,你也可以使用Data :: Dumper(结果文件有点人性化)。
  • 您可以将内容展示为CSV。

当我只有一个任务访问文件时,我经常使用Dumper - 如果我觉得合适的话,它给了我一种阅读/修改内容的方法。