The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.99_03

  • THIS VERSION IS INCOMPATIBLE WITH FILES FROM ALL OTHER PRIOR VERSIONS.
    • The fileformat changed completely. I will be writing a converter, but it's not there right now. Do NOT expect that this module will correctly detect older versions and handle them sanely. Sanity will be there for 1.00, but we're not there yet, are we?
  • Converted to use FileHandle::Fmode to handle filehandle status checks
  • Fixed bug with deleting already-deleted items on Win32 (reported by Nigel Sandever)
  • The guts of how transactions work has been rewritten to better handle some edgecases. This required a complete rewrite of the engine.
  • Freespace management is now in place. It's not perfect, but it's there.
  • The rewrite of the engine required a rewrite of how first_key/next_key was implemented. This should result in significant speed improvements.
  • Self-reference has been removed. This means you cannot do: $db->{foo} = { x => 'y' }; $db->{bar} = $db->{foo}; I hope to be able to return this functionality by 1.00, but I cannot promise anything. To do this properly, it requires refcounting in order to correctly handle deletions and transactions. Once you move away from a simple tree, everything becomes really hard.

Changes for version 0.99_02

  • Added missing file to the MANIFEST

Changes for version 0.99_01

  • Added explicit dependency on Perl 5.6.0
    • Digest::MD5 requires 5.6.0
    • Sub::Uplevel (dep of Test::Exception) requires 5.6.0
  • Removed error()/clear_error()
    • All error-handling is done with die()
  • Broke out DBM::Deep's code into DBM::Deep::Engine
  • Tied variables can no longer be assigned to a DBM::Deep object.
    • This includes cross-file assignments.
  • Autovivification now works
    • This is a consequence of the fact that all assignments are tied.
  • set_pack() and set_digest() have been removed.
    • Instead, you will now pass the appropriate values into new()
    • A pack_size parameter has been added to make 64-bit files easier
  • Transactions now work

Provides

in lib/DBM/Deep.pm
in lib/DBM/Deep/Array.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/File.pm
in lib/DBM/Deep/Hash.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm
in lib/DBM/Deep/Engine.pm