package MyDBM;



require SDBM_File;

require Tie::Hash;

@ISA = qw( Tie::Hash );



sub TIEHASH {

    my $type = shift;

    my $ref  = SDBM_File->new(@_);

    return bless {dbm => $ref}, $type;

}

sub FETCH {

    my $self = shift;

    my $ref  = $self->{dbm};

    $ref->FETCH(@_);

}

sub STORE {

    my $self = shift;

    if (defined $_[0]){

        my $ref = $self->{dbm};

        $ref->STORE(@_);

    } else {

        die "Cannot STORE an undefined key in MyDBM\n";

    }

}



package main;

use Fcntl qw( O_RDWR O_CREAT );



tie %foo, "MyDBM", "sdbmfile1", O_RDWR|O_CREAT, 0640;

$foo{Fred} = 123;

print "foo-Fred = $foo{Fred}\n";



tie %bar, "MyDBM", "sdbmfile2", O_RDWR|O_CREAT, 0640;

$bar{Barney} = 456;

print "bar-Barney = $bar{Barney}\n";

