---
name: "Catmandu::Serializer"
section: "3pm"
platform: "linux"
package: "libcatmandu-perl"
version: "1.2024-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catmandu::Serializer"
---

# Catmandu::Serializer(3pm)

Base class for all Catmandu Serializers

## NAME

Catmandu::Serializer - Base class for all Catmandu Serializers

## SYNOPSIS

```
    package Catmandu::Serializer::Foo;
    use Moo;
    sub serialize {
        my ($self,$data) = @_;
        .. transform the data to a string and return it...
    }
    sub deserialize {
        my ($self,$string) = @_;
        ... transform the string into a perl hash ...
    }
    package MyPackage;
    use Moo;
    with 'Catmandu::Serializer';
    package main;
    my $pkg = MyPackage->new;
    my $string = $pkg->serialize({ foo => 'bar' });
    my $perl   = $pkg->deserialize($string);
    # Using Catmandu::Serializer::Foo
    my $pkg = MyPackage->new( serialization_format => 'Foo' );
    my $string = $pkg->serialize({ foo => 'bar' });
    my $perl   = $pkg->deserialize($string);
```

## DESCRIPTION

This is a convience class to send Perl hashes easily over the wire without having to instantiate a Catmandu::Importer and Catmandu::Exporter which are more suited for processing IO streams.

## ATTRIBUTES

## serialization\_format

The name of the package that serializes data.

## serializer

An instance of the package that serializes.

## METHODS

### serialize($perl)

Serialize a perl data structure into a string.

### deserialize($bytes)

Deserialize bytes into a perl data structure.

## SEE ALSO

Catmandu::Store::DBI,  Catmandu::Serializer::json, Catmandu::Serializer::storabe, Catmandu::Serializer::messagepack
