package TextFileDB;
use strict;
use warnings;
use Carp;
use Fcntl;
use File::Sync;
use IO::File;
use TextRecordConverter;
require Exporter;
our @ISA = qw(Exporter);
sub TIEHASH {
my ($package, %options) = @_;
my $required = $package->required;
my $self = bless {
changes => 0,
records => {},
map {
$_ =>
defined $options{$_} &&
ref($options{$_}) eq $required->{$_}?
$options{$_}
:
croak "missing or invalid parameter $_"
} keys %{$required},
}, $package;
$self->load;
$self->initialize(%options);
return $self;
}
|