NAME
Inline::YAML - Specify YAML content directly in your Perl
SYNOPSIS
use Inline::YAML;
my @hackers =
---
name: Larry Wall
title: Fearless Leader
hacks: [patch, perl]
---
name: Damian Conway
title: Thunder from Down Under
hacks:
- Parse::RecDescent
- Quantum::SuperPositions
---
name: Ingy döt Net
nickname: ingy
hacks:
- Inline
- YAML
- Inline::YAML
...
foreach (@hackers) {
my $quote = $_->{name};
$quote .= ", the $_->{title},"
if defined $_->{title};
$quote .= ", aka '$_->{nickname}',"
if defined $_->{nickname};
$quote .= ' hacked ';
$quote .= join(' and ', @{$_->{hacks}});
$quote .= ".\n";
print $quote;
}
DESCRIPTION
YAML let's you express any Perl data in a very clean and easy to read format. Inline::YAML lets you put YAML streams directly into your Perl programs without any extra syntax.
If you need to express a large static data structure in your code, YAML is a great way to do it. It has a minimum of control characters and uses indentation for structure. You'll need less quotes, less commas and less braces.
The YAML streams should begin with '---' in column 1, and end with '...' in column 1, both of which are proper YAML constructs for starting and ending a stream. The YAML will return a list equal in length to the number of '---' lines.
HOW IT WORKS
Inline::YAML is a simple filter (using Filter::Simple) that turns:
my $answers =
---
who: You
what: Chicken Butt
where: Under There
...
into:
my $answers = YAML::Load <<'...';
---
who: You
what: Chicken Butt
where: Under There
...
AUTHOR
Ingy döt Net <ingy@cpan.org>
COPYRIGHT
Copyright 2002-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.