From: Brian I. <in...@tt...> - 2002-12-18 23:18:34
|
On 18/12/02 05:57 +0000, Adrian Howard wrote: > Hi there, > > Finally got around to playing with YAML - which is something I've been > meaning to do for some time. It seems very nice (and much easier to > customise than Data::Dumper.) > > A couple of things seem odd. Just want to see if there is something I'm > missing... > > 1) YAML.pm is not re-entrant. Everything is stuffed in that global $o, > which means that you can't do YAML serialisation from within a > yaml_dump, or related routine. I've attached a test script that shows > what I mean. The example at > <URI:http://www.perlmonks.org/index.pl?node_id=220776> is another. It is meant to be reentrant because every time it does a callback, it stacks the $o. Might be busted though. I'll look into it. > 2) The yaml_dump and yaml_load methods are only called if they're in > the package you're trying to dump. You can't have them in a base class > and be automatically used by sub-classes. Accident of implementation or > deliberate choice? Accident :) I suppose I should've used ->can(), right? It's interesting because the YAML type repository recently added a special 'inheritance key'. I think it's '<' or '<='. It could be used like this: --- subclassed: !perl/Foo::Bar <: foo: 1 bar: 2 baz: 3 bar: 42 same as: !perl/Foo::Bar foo: 1 bar: 42 baz: 3 ... I should work out some Perl code that could work this way. Cheers, Brian BTW, Crossposting to yaml list. I'll bet Why could produce an example in Ruby. |
From: Adrian H. <ad...@qu...> - 2002-12-19 00:14:59
|
[snip] > It is meant to be reentrant because every time it does a callback, it > stacks the $o. Might be busted though. I'll look into it. [snip] Ta. > I suppose I should've used ->can(), right? [snip] I have to admit, that was the way I had expected it to work :-) Adrian |