From: Adriano F. <a.r...@gm...> - 2005-05-25 19:35:48
|
It looks like a bug. It happens when an inline collection (map or sequence) is nested into another inline collection and extra blanks are left among closing brackets. These emit errors: --- { a: {k: v} } =3D> YAML_PARSE_ERR_INLINE_MAP --- { a: [1] } =3D> YAML_PARSE_ERR_INLINE_MAP --- [ {k: v} ] =3D> YAML_PARSE_ERR_INLINE_SEQUENCE --- [ [1] ] =3D> YAML_PARSE_ERR_INLINE_SEQUENCE But slight variations pass through. Either use a trailing comma=20 --- { a: {k: v}, } --- { a: [1], } --- [ {k: v}, ] --- [ [1], ] or chop the blank --- { a: {k: v}} --- { a: [1]} --- [ {k: v}] --- [ [1]] The fix was just too easy. Four lines changed at YAML.pm where '\s*' was added to assure blanks before the closing bracket was allowed. I prepared a complete patch based on "YAML-0.39.tar.gz" from CPAN. This patch was submitted also to rt.cpan.org. Unfortunately, Brian Ingerson had not been very responsive about bug reports on RT. Maybe due to the lack of patches. Maybe because he's preparing for the next big thing of YAML 1.1. If you want to give a try, I made it work with $ tar xvfz YAML-0.39.tar.gz $ patch -p 0 < yaml-diff $ cd YAML-0.39; perl Makefile.PL; make test $ make install Regards,=20 Adriano. More details on the patch: WHAT CHANGED * lib/YAML.pm (4 lines) * t/23inline.t (added) (a script to test the fix worked and does not break anything) * Changes =20 * MANIFEST (added t/23inline.t) It is missing the update of the version number in lib/YAML.pm. |