kbraj has asked for the wisdom of the Perl Monks concerning the following question:
Hi All, I have designed a script to extract the XML data using XML::DOM::Lite. I have parsed the xml file using the below method
my $parser = XML::DOM::Lite::Parser->new(); my $doc = $parser->parseFile("$file_name");
Then I tried to parse more files, say 30, size of each file is around 5MB and I got "Out of memory" issue.
I understood that I need to dispose the garbage value stored in the memory and I have created a seperate subroutine called dispose() which is just a replica of decycle() method available in Lite, but it is not working as expected. The sub is given below.
sub dispose { my ($self) = @_; foreach (@{$self->childNodes}) { undef $_->{parentNode}; undef $_->{ownerDocument}; if (defined $_->{childNodes}) { $_->decycle(); } } }
I'm calling the method as
$doc->dispose;Can any one help me on this.
|
|---|