Home

YAML::Any(3pm)

YAML::Any(3pm)User Contributed Perl DocumentationYAML::Any(3pm)

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>

2022-10-14perl v5.34.0