busunsl has asked for the wisdom of the Perl Monks concerning the following question:
One of the options of XML::Simple is to insert an array on each hierarchy level, so it can distinguish between attributes and elements.
My first use was without that extra level, so I could access stuff just by dereferencing hashes:
It worked well until I realized, that I needed that extra level. The structure changed from something like:$template->{level1}->{level2}->{element1} = '1234';
to$template = { 'level1' => { 'level2' => { 'element1' => '1234' } } };
But I didn't change my program. :-($template = { 'level1' => [ { 'level2' => [ { 'element1' => '1234' } ] } ] };
print $template->{level1}->{level2}->{element1};
just printed nothing and
$template->{level1}->{level2}->{element1} = '1234';
gave me that wonderful error message, telling me just nothing about what happend:
Out of memory!
So when I access elements of a datastructure in the wrong way I just get undef, but when I assign to it in the wrong way Perl runs out of memory.
I think Perl should report an error, as it does when you try to use a normal hash reference as an array reference.
Is this behaviour documented somewhere?
Is it a bug?
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: datastructures and out of memory errors
by strat (Canon) on Mar 11, 2002 at 13:31 UTC | |
Re: datastructures and out of memory errors
by blakem (Monsignor) on Mar 11, 2002 at 20:44 UTC | |
by busunsl (Vicar) on Mar 11, 2002 at 22:05 UTC |