App-Tel
view release on metacpan or search on metacpan
local/lib/perl5/YAML/Tiny.pm view on Meta::CPAN
overhead.
Most of the time it is accepted that Perl applications use a lot
of memory and modules. The B<::Tiny> family of modules is specifically
intended to provide an ultralight and zero-dependency alternative to
many more-thorough standard modules.
This module is primarily for reading human-written files (like simple
config files) and generating very simple human-readable files. Note that
I said B<human-readable> and not B<geek-readable>. The sort of files that
your average manager or secretary should be able to look at and make
sense of.
=for stopwords normalise
L<YAML::Tiny> does not generate comments, it won't necessarily preserve the
order of your hashes, and it will normalise if reading in and writing out
again.
It only supports a very basic subset of the full YAML specification.
=for stopwords embeddable
Usage is targeted at files like Perl's META.yml, for which a small and
easily-embeddable module is extremely attractive.
Features will only be added if they are human readable, and can be written
in a few lines of code. Please don't be offended if your request is
refused. Someone has to draw the line, and for YAML::Tiny that someone
is me.
If you need something with more power move up to L<YAML> (7 megabytes of
memory overhead) or L<YAML::XS> (6 megabytes memory overhead and requires
a C compiler).
To restate, L<YAML::Tiny> does B<not> preserve your comments, whitespace,
or the order of your YAML data. But it should round-trip from Perl
structure to file and back again just fine.
=head1 METHODS
=for Pod::Coverage HAVE_UTF8 refaddr
=head2 new
The constructor C<new> creates a C<YAML::Tiny> object as a blessed array
reference. Any arguments provided are taken as separate documents
to be serialized.
=head2 read $filename
The C<read> constructor reads a YAML file from a file name,
and returns a new C<YAML::Tiny> object containing the parsed content.
Returns the object on success or throws an error on failure.
=head2 read_string $string;
The C<read_string> constructor reads YAML data from a character string, and
returns a new C<YAML::Tiny> object containing the parsed content. If you have
read the string from a file yourself, be sure that you have correctly decoded
it into characters first.
Returns the object on success or throws an error on failure.
=head2 write $filename
The C<write> method generates the file content for the properties, and
writes it to disk using UTF-8 encoding to the filename specified.
Returns true on success or throws an error on failure.
=head2 write_string
Generates the file content for the object and returns it as a character
string. This may contain non-ASCII characters and should be encoded
before writing it to a file.
Returns true on success or throws an error on failure.
=for stopwords errstr
=head2 errstr (DEPRECATED)
Prior to version 1.57, some errors were fatal and others were available only
via the C<$YAML::Tiny::errstr> variable, which could be accessed via the
C<errstr()> method.
Starting with version 1.57, all errors are fatal and throw exceptions.
The C<$errstr> variable is still set when exceptions are thrown, but
C<$errstr> and the C<errstr()> method are deprecated and may be removed in a
future release. The first use of C<errstr()> will issue a deprecation
warning.
=head1 FUNCTIONS
YAML::Tiny implements a number of functions to add compatibility with
the L<YAML> API. These should be a drop-in replacement.
=head2 Dump
my $string = Dump(list-of-Perl-data-structures);
Turn Perl data into YAML. This function works very much like
Data::Dumper::Dumper().
It takes a list of Perl data structures and dumps them into a serialized
form.
It returns a character string containing the YAML stream. Be sure to encode
it as UTF-8 before serializing to a file or socket.
The structures can be references or plain scalars.
Dies on any error.
=head2 Load
my @data_structures = Load(string-containing-a-YAML-stream);
( run in 0.604 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )