DWH_File (the Deep 'n' Wide Hash) - persistence for complex datastructures and objects in Perl version 0.1 INSTALLATION: $ perl Makefile.PL $ make $ make test $ make intall DWH_File consists of the DWH_File.pm module and a number of modules under the DHW_File::* name space. It's all pure perl and every module contains one package. Every package defines a perl class. WHAT IT DOES: DWH_File is used in a similar manner to NDBM_File, DB_File etc. In fact it depends on one of these. DWH_File expands the functionality to save not only the hash that is tied but also all the data that this hash contains references to - that is it'll save all you list of lists and list of hashes and so forth. And what's more, it will save objects as well - if they'll comply with some very simple rules which don't impose any limitations to their functionality or structure except that they can't themselves be tied to anyone else. See the "Models" section of the embedded documentation for details. .pod documentation is included in the DWH_File.pm file. NOTE: From version 0.1 and on, the file format has changed radically. File conversions should not be that complicated though, but I haven't written any converter myself. It wouldn't surprise me if it works to dump the contents of at DWH_File-tied hash to a file using Storable or the like and then read it back in a hash tied to the new version of DWH_File. The old versions are available from CPAN at http://www.cpan.org/authors/id/S/SU/SUMUS/ TO DO: DWH_File does what I need it to do in it's present form, so i can't promise to be very eager to develop it further - but here are some of the things I have in mind: * support for garbage collection despite circular references * support for checking file consistency and repair options * more error checking and recovery generally * make a logging facility (existed in pre-0.1 versions) * make linked-list arrays available as alternative * make different hash-key-registry options available (array, linked list, bulk) * make version-convertion available for archives as new versions appear * test whether 0.1 format is actually more efficient than 0.03 format HISTORY 0.1 - Complete rewrite. New version much more OO-based. New file-format using binary encodings in stead of decimal strings (supposedly more efficient). More comme il faut distribution with MakeFile.pl and automated tests etc. 0.03 - Fixed bug introduced in 0.02 which caused wild duplication of blessed references (objects) 0.02 - Fixed bug which caused deep recursion when storing structures that wich contained reference cycles before storing. 0.01 - Initially published version Jakob Schmidt 2002 September 30 Visit http://www.orqwood.dk/perl5/dwh for complete info on DWH_File and it's accomplices LOG $Log: README,v $ Revision 1.2 2002/09/29 23:05:10 schmidt Made a few changes to get ready for release version 0.1 on CPAN Revision 1.1.1.1 2002/09/27 22:41:49 schmidt Imported