YAML Input Processing
Wanting to capture some simple accounting data for a local organization, I started using using YAML as the input method. The YAML string found it home in an Excel cell in a spreadsheet. The format was:
--- refid: 999999 refdate: 2016-01-01 acct: 8888 total: 555.55 method: General Fund chkno: 4444 conf: 555555 cmt: This is a comment. ...
The requirements morphed into having multiple account numbers and amounts. The resulting format now was:
---
refid: 999999
refdate: 2016-01-01
accounts:
- acct: 8888
amt: 88.88
- acct: 7777
amt: 77.77
- acct: 6666
amt: 66.66
total: 555.55
method: General Fund
chkno: 4444
conf: 555555
cmt: This is a comment.
...The resulting Perl hash looks like:
$VAR1 = {
'cmt' => 'This is a comment.',
'refid' => '999999',
'conf' => '555555',
'refdate' => '2016-01-01',
'total' => '555.55',
'method' => 'General Fund',
'accounts' => [
{
'acct' => '8888',
'amt' => '88.88'
},
{
'acct' => '7777',
'amt' => '77.77'
},
{
'amt' => '66.66',
'acct' => '6666'
}
],
'chkno' => '4444'
};
I was not able to use the cpan module YAML to read this YAML string into the code. I was able to use YAML::Tiny to successfully read it.
⋮ # Read in YAML from file 'tmp.yml'. use $fn = 'tmp.yml'; my $yaml = YAML::Tiny->read($fn); my $hash = $yaml->[0]; # YAML file 'tmp.yml' is available for use with $hash. ⋮