TOON

A small starter CPAN-style distribution for a TOON module with a familiar interface inspired by JSON.

Status

This is an intentionally basic implementation. It is suitable as a starting point for further development, but it is not yet a complete or authoritative implementation of any external TOON specification.

Supported syntax

Example

use TOON qw(encode_toon decode_toon);
# Aliases: to_toon / from_toon are also available

my $text = encode_toon({
  name   => 'Dave',
  active => 1,
  tags   => ['perl', 'toon'],
}, canonical => 1);

my $data = decode_toon($text);

Tabular syntax

Top-level hashes whose values are arrays of uniform hashes are automatically encoded in the compact tabular format:

users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

This format is also accepted on decode.

OO interface

use TOON;

my $toon = TOON->new->pretty->canonical;
my $text = $toon->encode({ answer => 42 });
my $data = $toon->decode($text);