[Philadelphia-pm] My first stab at loading a YAML file - and how it blows up in my face

Jacob Salomon jakesalomon at yahoo.com
Wed Aug 4 12:57:31 PDT 2021


Hi Folks (capitalized!  ;-)

I'm a member of the ny.pm group, with Jim Keenan.  (Just for some identification)
In my most recent contract, the team leader (call him Steve) implemented a lot of great stuff using YAML files as a sort of registry for the applications.  So now I have the time to play with that stuff and try my own hand at it.  I'm using this book as a starting point:
YAML Ain’t Markup Language (YAML™)Version 1.23rd Edition, Patched at 2009-10-01

Here's the YAML code I copy/pasted from one of the examples in the book:--------------------------------------  1 --- !<tag:clarkevans.com,2002:invoice>  2 invoice: 34843  3 date : 2001-01-23  4 bill-to: &id001  5   given : Chris  6   family : Dumars  7   address:  8     lines: |  9       458 Walkman Dr. 10       Suite #292 11     city : Royal Oak 12     state : MI 13     postal : 48046 14 ship-to: *id001 15 product: 16   - sku : BL394D 17     quantity : 4 18     description : Basketball 19     price : 450.00 20   - sku : BL4438H 21     quantity : 1 22     description : Super Hoop 23     price : 2392.00 24 tax : 251.42 25 total: 4443.52 26 comments: 27   Late afternoon is best. 28   Backup contact is Nancy 29   Billsmer @ 338-4338.--------------------------------------
(I've tried to paste that in Courier font so that the indents stay consistent.)
Here is my Perl code:---------------------------------------- 1 #!/usr/bin/perl -w -d 2 # practice1.pl - My first practice yaml code 3 # 4 use strict; 5 use YAML; 6 use Data::Dumper; 7 8 my $yamfile = "./invoice.yaml";     # Play with this one firs 9 my $yamlref = Load($yamfile);1011 1 == 1;     # Just a breakpoint12 exit 0;----------------------------------------
 (Again, I pasted that in Courier font.  But Yahoo mail is not always cooperative.)

And what happens when I issue that load call?----------------------------------------main::(./practice1.pl:9):       my $yamlref = Load($yamfile);  DB<1> nYAML Error: Expected separator '---'   Code: YAML_PARSE_ERR_NO_SEPARATOR   Line: 1   Document: 2 at /usr/share/perl5/YAML/Loader.pm line 78. at /usr/share/perl5/YAML/Mo.pm line 16.        YAML::Mo::__ANON__[/usr/share/perl5/YAML/Mo.pm:17](YAML::Loader=HASH(0x1485c30), "YAML_PARSE_ERR_NO_SEPARATOR")            called at /usr/share/perl5/YAML/Loader.pm line 78        YAML::Loader::_parse(YAML::Loader=HASH(0x1485c30)) called at /usr/share/perl5/YAML/Loader.pm line 24        YAML::Loader::load(YAML::Loader=HASH(0x1485c30), "./invoice.yaml") called at /usr/share/perl5/YAML.pm line 33        YAML::Load("./invoice.yaml") called at ./practice1.pl line 9Debugged program terminated.  Use q to quit or R to restart,----------------------------------------
My searches have turned up lots of similar problems but no solution I could easily grok.  Can someone please point out what I'm doing wrong in the Yaml?  I may have pasted something incorrectly but the --- separator is there at the top.
BTW I have tried:   
   - Moving that <tag> to another line
   - Commenting out that <tag> altogether
   - Adding --- separator at the bottom of the YAML file
   - Adding ... there instead of the ---
None of these fixed the "YAML_PARSE_ERR_NO_SEPARATOR" error.
I may post this on Perlmonks as well (I see it is addressed there) but I don't yet want to advertise my incompetence that widely. :-))
Thanks much for any help here.
+----- Jacob Salomon --------------------------------------------------+| The first lesson of economics is scarcity: there is never enough of  || anything to fully satisfy all those who want it. The first lesson of || politics is to disregard the first lesson of economics.              |+------------------------------ Thomas Sowell (Is Reality Optional?) --+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/philadelphia-pm/attachments/20210804/bfcd616a/attachment-0001.html>


More information about the Philadelphia-pm mailing list