---
name: "DR::Tarantool::MsgPack"
section: "3pm"
platform: "linux"
package: "libdr-tarantool-perl"
version: "0.45-2+b2"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/DR::Tarantool::MsgPack"
---

# DR::Tarantool::MsgPack(3pm)

msgpack encoder/decoder.

## NAME

DR::Tarantool::MsgPack - msgpack encoder/decoder.

## SYNOPSIS

```
    use DR::Tarantool::MsgPack 'msgpack', 'msgunpack', 'msgcheck';
    # encode object
    my $pkt = msgpack({ a => 'b' });
    # decode object
    my $object = msgunpack($pkt);
    # decode object with utf8-strings
    my $object = msgunpack($pkt, 1);
    # check if $string is valid msgpack
    $object = msgunpack($str, 1) if msgcheck($str);
```

## METHODS

### msgpack($OBJECT)

Encode perl object (scalar, hash, array) to octets.

### msgunpack($OCTETS\[, $UTF8\])

Decide octets to perl object. Return perl object and tail of input string.

If `$UTF8` is true, msgunpack will decode utf8-strings.

### true and false

Protocol supports `"true"` and `"false"` statements. msgunpack unpacks them to `1` and `0`.

If You want to pack `"true"` You can use **DR::Tarantool::MsgPack::Bool**:

```
    use DR::Tarantool::MsgPack 'msgpack';
    my $to_pack = { a => DR::Tarantool::MsgPack::Bool->new(0) };
    my $pkt = msgpack($to_pack);
```
