dbmopen %FOO, "my_database", 0644 or die; ... sub foo :lvalue { my $self = shift; $FOO{$self->key}; } ... my $obj = SubClass->new; $obj->foo = 35; # calls tied(%FOO)->STORE($obj->key, 35); my $fetch = $obj->foo; # calls tied(%FOO)->FETCH($obj->key);