---
name: "Data::Stag::StagDB"
section: "3pm"
platform: "linux"
package: "libdata-stag-perl"
version: "0.14-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Data::Stag::StagDB"
---

# Data::Stag::StagDB(3pm)

## NAME

```
  Data::Stag::StagDB - persistent storage and retrieval of stag nodes
```

## SYNOPSIS

```
  # parsing a file into a file based index
  my $sdb = Data::Stag::StagDB->new;
  $sdb->unique_key("ss_details/social_security_no");
  $sdb->record_type("person");
  $sdb->indexfile("./person_by_ss-idx");
  Data::Stag->parse(-file=>$fn, -handler=>$sdb);
  my $obj = $sdb->index_hash;
  my $person = $obj->{'999-9999-9999'};
  print $person->xml;
  # indexing an existing stag tree into a file based index
  my $personset = Data::Stag->parse($fn);
  my $sdb = Data::Stag::StagDB->new;
  $sdb->unique_key("ss_details/social_security_no");
  $sdb->record_type("person");
  $sdb->indexfile("./person_by_ss-idx");
  $personset->sax($sdb);
  my $obj = $sdb->index_hash;
  my $person = $obj->{'999-9999-9999'};
  print $person->xml;
```

## DESCRIPTION

This module is an extension of Data::Stag::HashDB - you can use it in the same way.

It creates a simple file based database of stag nodes

This is useful if you want your data to persist; or if you want to use Data::Stag::HashDB but your data will not fit into memory

## PUBLIC METHODS -

### indexfile

```
  Usage   -
  Returns -
  Args    -
```
