对于我当前的项目,我需要在磁盘上存储一个小数据库,我在程序运行后读取并写入一次。
我研究了 perls DBM 功能,据我了解,它仅提供存储在磁盘上的散列,每次读写都直接进入磁盘。
我的问题是:我不能简单地使用Storable
或任何相关模块来实现相同的(持久散列)并且文件 I/O 开销要少得多吗?(散列永远不会太大而无法轻松放入内存)
问候尼克
对于我当前的项目,我需要在磁盘上存储一个小数据库,我在程序运行后读取并写入一次。
我研究了 perls DBM 功能,据我了解,它仅提供存储在磁盘上的散列,每次读写都直接进入磁盘。
我的问题是:我不能简单地使用Storable
或任何相关模块来实现相同的(持久散列)并且文件 I/O 开销要少得多吗?(散列永远不会太大而无法轻松放入内存)
问候尼克
SQLite正迅速成为简单磁盘数据库的标准。在 Perl 中,您只需使用DBD::SQLite就可以了。
由于先前的答案并没有真正回答您的实际问题,因此“是的,您可以”...带有以下警告:
当只有一个任务访问文件时,我经常使用 Dumper - 如果我认为合适,它为我提供了一种读取/修改内容的方法。