I would like the ability to store a complicated record inside of a DBM
file. I looked in the usual places and perldoc -q DBM gives me:
Either stringify the structure yourself (no fun), or else get
the MLDBM (which uses Data::Dumper) module from CPAN and layer
it on top of either DB_File or GDBM_File.
Therefore, I went in search of a solution to automate the
stringification. I didn't find anything other than MLDBM for doing
something like this and it seems like a little much for my purposes. All
I need is something like this:
$hash{name} = "value1:value2:value3:...";
I've done some work with Tie::Memoize and really like it's interface, so
I decided to write something like it for wrapping hashes. Thus,
Tie::HashWrapper was born. It may be used like this:
tie my %wrappee, 'AnyDBM_File', ...;
tie my %wrapper, 'Tie::HashWrapper', \%wrappee,
-deflate_value => sub { join ':', @{$_[0]} },
-inflate_value => sub { split /:/, $_[0] };
$wrapper{name} = [ value1, value2, value3 ];
and so forth. In addition, if one wants to have more complicated keys,
one may add -deflate_key/-inflate_key values to the call to tie. I
haven't uploaded it CPAN yet pending documentation and finding a good
name.
Does Tie::HashWrapper seem reasonable? Or does anyone have a better
name? Have I gone off the deep-end again and rewritten something that
already exists and I missed it?
Cheers,
Sterling
--
<>< ><> <>< ><> <>< ><> <>< ><> <>< ><> <>< ><> <>< ><> <>< ><> <>< ><>
Andrew Sterling Hanenkamp
http://Andrew.Sterling.Hanenkamp.com/
[EMAIL PROTECTED] / [EMAIL PROTECTED]
There exists in the human heart a depraved taste for equality, which
impels the weak to attempt to lower the powerful to their own level,
and reduces men to prefer equality in slavery to inequality under
freedom. -- Alexis de Tocqueville