This is the Thesaurus module and its subclasses.

Thesaurus is a module that implements the notion of equivalence
between things (anything that fits in a scalar).

All the basic functionality for Thesaurus, Thesaurus::File, and
Thesaurus::DBM is in place.  Thesaurus::DBI is currently an empty
module with some docs.


Required Modules

 Thesaurus::File: Text_CSV_XS, IO::File
 Thesaurus::DBM: File::Flock, MLDBM, DB_File or GDBM_File


To Do

- Thesaurus::DBI.  This means making Thesaurus::DBI::<your DB system
here> subclasses as well as a configuration script to help people set
up the tables they'll need to implement this.  My goal is to make this
very flexible so there are no hardcoded column or table names.  I plan
to implement MySQL, Oracle, and PostgreSQL subclasses (probably in
that order).


History

0.15

- Moved subclasses into Thesaurus subdirectory so man pages are
created correctly during install.

0.12

- (Hopefully) made the test suite smarter.  It checks to see if you
have the needed modules for a given subclass before attempting to
test it.  This doesn't affect the install (it'll still install all
of them).

- I'm also moving this from my PGRIMES account on CPAN (not my name)
to my DROLSKY account.  No, I'm not paranoid.

0.11

- Made the locking defaults do what the docs say they do.

- Added death if someone wants to use NDBM_File cause it doesn't have
EXISTS either.

0.1

- Added locking for Thesaurus::DBM.

- Thesaurus::DBM dies if you don't give it some sort of use argument
besides SDBM_File.

- Really fixed the bug that was sort of fixed in 0.02.  The previous
solution worked but was slow, slow, slow.  The new fix is only slow so
that's an improvement.

- Added test.pl test suite.  This does a reasonably good job of
exercising the code.  This makes it much easier to move forward with
new versions.  If someone has a more elegant method of testing the
locking please let me know.

0.02

- Fixed a bug in Thesaurus::DBM.  Apparently, MLDBM doesn't store
references, just data.  I did some strange things in Thesaurus::DBM to
ensure that the object preserves data integrity correctly.  The upside
is that this module now works as it should (I think).  The downside is
that it will get exponentially slower as more data is added.  That
means that Thesaurus::File is potentially faster for large structures.
OTOH, Thesaurus::DBM keeps all changes on disk as you go.  I'll try to
tune Thesaurus::DBM as much as possible.

0.01

 - Initial release


Copyright (c) 1999 David Rolsky. All rights reserved. This program is
free software; you can redistribute it and/or modify it under the same
terms as Perl itself.
