TOML(3) Parser for Tom's Obvious, Minimal Language.


use TOML qw(from_toml to_toml);
# Parsing toml
my $toml = slurp("~/.foo.toml");
my $data = from_toml($toml);
# With error checking
my ($data, $err) = from_toml($toml);
unless ($data) {
die "Error parsing toml: $err";
# Creating toml
my $toml = to_toml($data);


"TOML" implements a parser for Tom's Obvious, Minimal Language, as defined at <>. "TOML" exports two subroutines, "from_toml" and "to_toml",


How change how to de-serialize?
You can change $TOML::PARSER for change how to de-serialize.


    use TOML;
    use TOML::Parser;
    local $TOML::PARSER = TOML::Parser->new(
        inflate_boolean => sub { $_[0] eq 'true' ? \1 : \0 },
    my $data = TOML::from_toml('foo = true');


"from_toml" transforms a string containing toml to a perl data structure or vice versa. This data structure complies with the tests provided at <>.

If called in list context, "from_toml" produces a ("hash", "error_string") tuple, where "error_string" is "undef" on non-errors. If there is an error, then "hash" will be undefined and "error_string" will contains (scant) details about said error.

"to_toml" transforms a perl data structure into toml-formatted string.


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA


Darren Chamberlain <[email protected]>


Tokuhiro Matsuno <[email protected]>
Matthias Bethke <[email protected]>
Sergey Romanov <[email protected]>
karupanerura <[email protected]>