The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

YAML::Any - Pick a YAML implementation and use it.

STATUS

WARNING: This module will soon be deprecated. The plan is that YAML.pm itself will act like an Any module.

SYNOPSIS

use YAML::Any;
$YAML::Indent = 3;
my $yaml = Dump(@objects);

DESCRIPTION

There are several YAML implementations that support the Dump/Load API. This module selects the best one available and uses it.

ORDER

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

OPTIONS

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.

SUBROUTINES

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

METHODS

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.

EXAMPLES

DumpFile and LoadFile

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'
$

AUTHOR

Ingy döt Net <[email protected]>

COPYRIGHT

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 https://www.perl.com/perl/misc/Artistic.html