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.2  - Slight revision of untie management. Now allows selecting
           specific DBM-module (a feature, that never came into
           the rewrite 0.1, though documentation still claimed it
           was there).

    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 <schmidt@orqwood.dk> 2002 October 25
Visit http://www.orqwood.dk/perl5/dwh for complete info on
DWH_File and it's accomplices

LOG

  $Log: README,v $
  Revision 1.3  2002/10/25 20:50:08  schmidt
  History entry for version 0.2 entered

  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

