---
name: "Tangram::PerlDump"
section: "3pm"
platform: "linux"
package: "libtangram-perl"
version: "2.07-1"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/Tangram::PerlDump"
---

# Tangram::PerlDump(3pm)

map any Perl object as scalar dump

## NAME

Tangram::PerlDump - map any Perl object as scalar dump

## SYNOPSIS

```
   use Tangram::Core;
   use Tangram::PerlDump; # always
```

```
   $schema = Tangram::Schema->new(
      classes => { NaturalPerson => { fields => {
```

```
      perl_dump =>
      {
         diary => # diary is a perl hash
         {
            col => 'diarydata',
            sql => 'TEXT',
            indent => 0,
            terse => 1,
            purity => 0
         },
```

```
         lucky_numbers => 'int', # use defaults
      }
```

## DESCRIPTION

Maps arbitrary Perl data structures by serializing to a string representation. The persistent fields are grouped in a hash under the `"perl_dump"` key in the field hash.

Serialization is done by Data::Dumper, which traverses the Perl data structure and creates a string representation of it. The resulting string will be mapped to the DBMS as a scalar value. During restore, the scalar value will be eval'd to reconstruct the original data structure.

As Data::Dumper might not handle persistent references correctly, the data structure may only contain "normal" Perl references.

The field names are passed in a hash that associates a field name with a field descriptor. The field descriptor may be either a hash or a string. The hash uses the following fields:

- \* col

  - \* sql

  - \* indent

  - \* terse

  - \* purity

  The optional fields `"col"` and `"sql"` specify the column name and the column type for the scalar value in the database. If not present, `"col"` defaults to the field name and `"sql"` defaults to VARCHAR(255). Values will be always quoted as they are passed to the database.

The remaining optional fields control the serialization process. They will be passed down to Data::Dumper as values to the corresponding Data::Dumper options. The default settings are: no indentation (`"indent=0"`), compact format (`"terse=1"`), and quick dump (`"purity=0"`).

## AUTHOR

This mapping was contributed by Gabor Herr \<herr@iti.informatik.tu-darmstadt.de\>
