NAME
TOML::Parser - simple toml parser
SYNOPSIS
use TOML::Parser;
my $parser = TOML::Parser->new;
my $data = $parser->parse($toml);
DESCRIPTION
TOML::Parser is a simple toml parser.
This data structure complies with the tests provided at https://github.com/mojombo/toml/tree/master/tests.
WHY?
In my point of view, it's very difficult to maintain TOML::from_toml
because -so far as I understand- there's some issues.
Specifically, for example, TOML::from_toml
doesn't interpret correctly in some cases. In addition, it reports wrong line number when the error occurs. (This is because TOML::from_toml
deletes the comments and blank lines before it parses.)
I conclude that TOML::from_toml
has an architectural feet, and that's why I came to an idea of re-creating another implementation in order to solve the problem.
I believe that this is much easier than taking other solutions.
METHODS
- my $parser = TOML::Parser->new(\%args)
-
Creates a new TOML::Parser instance.
use TOML::Parser; # create new parser my $parser = TOML::Parser->new();
Arguments can be:
inflate_datetime
If use it, You can replace inflate
datetime
process.use TOML::Parser; use DateTime; use DateTime::Format::ISO8601; # create new parser my $parser = TOML::Parser->new( inflate_datetime => sub { my $dt = shift; return DateTime::Format::ISO8601->parse_datetime($dt); }, );
inflate_boolean
If use it, You can replace inflate boolean process.
use TOML::Parser; # create new parser my $parser = TOML::Parser->new( inflate_boolean => sub { my $boolean = shift; return $boolean eq 'true' ? 1 : 0; }, );
- my $data = $parser->parse_file($path)
- my $data = $parser->parse_fh($fh)
- my $data = $parser->parse($src)
-
Transforms a string containing toml to a perl data structure or vice versa.
BENCHMARK
benchmark: by `author/benchmark.pl`
Benchmark: timing 10000 iterations of TOML, TOML::Parser...
TOML: 11 wallclock secs (11.11 usr + 0.02 sys = 11.13 CPU) @ 898.47/s (n=10000)
TOML::Parser: 7 wallclock secs ( 6.84 usr + 0.01 sys = 6.85 CPU) @ 1459.85/s (n=10000)
Rate TOML TOML::Parser
TOML 898/s -- -38%
TOML::Parser 1460/s 62% --
SEE ALSO
LICENSE
Copyright (C) karupanerura.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
karupanerura <karupa@cpan.org>