---
name: "TM::ResourceAble::MLDBM"
section: "3pm"
platform: "linux"
package: "libtm-perl"
version: "1.56-7"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/TM::ResourceAble::MLDBM"
---

# TM::ResourceAble::MLDBM(3pm)

Topic Maps, DBM Storage (synchronous)

## NAME

TM::ResourceAble::MLDBM - Topic Maps, DBM Storage (synchronous)

## SYNOPSIS

```
    use TM::ResourceAble::MLDBM;
   {
    my $tm = new TM::ResourceAble::MLDBM (file => '/tmp/map.dbm');
    # modify the map here.....
    } # it goes out of scope here, and all changes are written back automagically
   # later in the game
   {
    my $tm = new TM::ResourceAble::MLDBM (file => '/tmp/map.dbm');
    # we are back in business, no sync necessary
    }
```

## DESCRIPTION

This package just implements TM with a BerkeleyDB store. Unlike TM::Materialized::MLDBM this module does not need explicit synchronisation with the external resource (the DBM file here).  It ties content-wise with the DBM file at constructor time and unties at DESTROY time.

This implementation technique is not so memory-efficient as I had thought. Whenever an assertion or a toplet is referenced, the whole block of toplets, resp. assertions, is loaded from the DB database. For small maps this is really fast, but it can become a drag for larger maps. See TM::ResourceAble::BDB for a more efficient solution.

**NOTE**: Be careful to use this together with TM::Index::\*. The indices will be held as part of the map, and so will be stored along side. If you heavily use the map, this can result in many swapin/swapouts. Better to look at TM::IndexAble for that matter.

## INTERFACE

### Constructor

The constructor expects a hash with the following keys:

- **file** (no default)

  This contains the file name of the DBM file to tie to.

## SEE ALSO

TM, TM::Materialized::MLDBM

## AUTHOR INFORMATION

Copyright 200\[68\], Robert Barta \<drrho@cpan.org\>, All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  http://www.perl.com/perl/misc/Artistic.html
