Updated documentation and Changes
rkinyon [Fri, 7 Apr 2006 00:54:19 +0000 (00:54 +0000)]
Changes
lib/DBM/Deep.pm

diff --git a/Changes b/Changes
index 716df29..2c47577 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,11 +1,19 @@
 Revision history for DBM::Deep.
 
 0.99_01 ??? ?? ??;??:?? 2006 Pacific
-    - Provided explicit dependency on Perl 5.6.0
+    - 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
 
 0.98  Feb 28 11:00:00 2006 Pacific
     - Added in patch by David Cantrell to allow use of DATA filehandle
index 6016460..688e936 100644 (file)
@@ -1509,26 +1509,6 @@ B<WARNING:> Only call optimize() on the top-level node of the database, and
 make sure there are no child references lying around.  DBM::Deep keeps a reference
 counter, and if it is greater than 1, optimize() will abort and return undef.
 
-=head2 AUTOVIVIFICATION
-
-Unfortunately, autovivification doesn't work with tied hashes.  This appears to
-be a bug in Perl's tie() system, as I<Jakob Schmidt> encountered the very same
-issue with his I<DWH_FIle> module (see L<http://search.cpan.org/search?module=DWH_File>),
-and it is also mentioned in the BUGS section for the I<MLDBM> module <see
-L<http://search.cpan.org/search?module=MLDBM>).  Basically, on a new db file,
-this does not work:
-
-    $db->{foo}->{bar} = "hello";
-
-Since "foo" doesn't exist, you cannot add "bar" to it.  You end up with "foo"
-being an empty hash.  Try this instead, which works fine:
-
-    $db->{foo} = { bar => "hello" };
-
-As of Perl 5.8.7, this bug still exists.  I have walked very carefully through
-the execution path, and Perl indeed passes an empty hash to the STORE() method.
-Probably a bug in Perl.
-
 =head2 REFERENCES
 
 (The reasons given assume a high level of Perl understanding, specifically of