Perl DBM vs. Storable - PullRequest
       32

Perl DBM vs. Storable

3 голосов
/ 30 декабря 2011

для моего текущего проекта мне нужно хранить небольшую базу данных на диске, которую я читаю, как только моя программа запускается, и записывать ее один раз.

Я изучил функциональность perls DBM и насколько я понимаю, она предоставляет толькохеш, который хранится на диске при каждом чтении и записи, идущей непосредственно на диск.

Мой вопрос: могу ли я просто использовать Storable или любой из связанных модулей для достижения того же (постоянный хеш)с гораздо меньшими накладными расходами файлового ввода-вывода?(Хэши никогда не будут слишком большими, чтобы легко помещаться в память)

С уважением, Ник

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

SQLite быстро становится стандартом для простых дисковых баз данных. А в Perl вы можете просто использовать DBD :: SQLite и все готово.

1 голос
/ 06 марта 2013

Поскольку предыдущие ответы на самом деле не отвечали на ваш фактический вопрос, «да, вы можете» ... со следующими предостережениями:

  • Сохраняемость не очень подходит для одновременного доступа.
  • Вам нужно будет свернуть собственное «атомарное» обновление (то есть: вам нужно будет записать в файл tmp, а затем переименовать).
  • Если производительность на самом деле не является проблемой, вы можететакже используйте Data :: Dumper (с результирующим файлом, несколько читаемым человеком).
  • Вы можете разделить содержимое на CSV.

Я часто использую Dumper, когда есть толькобыть единственной задачей, обращающейся к файлу - и она дает мне возможность читать / изменять содержимое, если я сочту нужным.

...