YAML::Any − Pick a YAML implementation and use it.
WARNING: This module will soon be deprecated. The plan is that YAML.pm itself will act like an Any module.
use YAML::Any;
$YAML::Indent = 3;
my $yaml = Dump(@objects);
There are several YAML implementations that support the Dump/Load API. This module selects the best one available and uses it.
Currently, YAML::Any will choose the first one of these YAML implementations that is installed on your system:
• |
YAML::XS |
|||
• |
YAML::Syck |
|||
• |
YAML::Old |
|||
• |
YAML |
|||
• |
YAML::Tiny |
If you specify an option like:
$YAML::Indent = 4;
And YAML::Any is using YAML::XS, it will use the proper variable: $YAML::XS::Indent.
Like all the YAML modules that YAML::Any uses, the following subroutines are exported by default:
• |
Dump |
|||
• |
Load |
and the following subroutines are exportable by request:
• |
DumpFile |
|||
• |
LoadFile |
YAML::Any
provides the following class methods.
"YAML::Any−>order"
This method returns a list of the current possible implementations that YAML::Any will search for.
"YAML::Any−>implementation"
This method returns the implementation the YAML::Any will use. This result is obtained by finding the first member of YAML::Any−>order that is either already loaded in %INC or that can be loaded using "require". If no implementation is found, an error will be thrown.
Here is an example for "DumpFile":
#!/usr/bin/perl
use strict;
use warnings;
use YAML::Any qw(DumpFile);
my $ds =
{
array => [5,6,100],
string => "Hello",
};
DumpFile("hello.yml", $ds);
When run, this creates a file called "hello.yml" in the current working directory, with the following contents.
−−−
array:
− 5
− 6
− 100
string: Hello
In turn, the following "LoadFile" example, loads the contents from there and accesses them:
#!/usr/bin/perl
use strict;
use warnings;
use YAML::Any qw(LoadFile);
my ($ds) = LoadFile("hello.yml");
print "String == '", $ds−>{string},
"'\n";
Assuming "hello.yml" exists, and is as created by the "DumpFile" example, it prints:
$ perl load.pl
String == 'Hello'
$
Ingy döt Net <[email protected]>
Copyright 2001−2014. Ingy döt Net
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See <http://www.perl.com/perl/misc/Artistic.html>