Perl 使用xml::TWIG分析大型xml文件失败

Perl 使用xml::TWIG分析大型xml文件失败,perl,xml-twig,Perl,Xml Twig,我正在尝试使用xml::Twig解析一个大型xml文件(大约100000条记录),但perl解析失败,出现错误: perl.exe - Application Error: The instruction at "0x28086920" referenced memory at "0x00000004". The memory could not be "written"... 我读到XML::Twig解析大型XML文件时没有任何问题,但在我的例子中,由于上面的错误,它失败了 My.pl文件

我正在尝试使用xml::Twig解析一个大型xml文件(大约100000条记录),但perl解析失败,出现错误:

perl.exe - Application Error: 
The instruction at "0x28086920" referenced memory at "0x00000004". The memory could not be "written"...
我读到
XML::Twig
解析大型XML文件时没有任何问题,但在我的例子中,由于上面的错误,它失败了

My.pl文件的forloop代码旋转100000次,如下所示:

foreach my $d1(@detailData)   {
    if ($d1->first_child('a')->getElementsByTagName('b')) {
        $id= $d1->first_child('a')->first_child('x')->field('b');
    }
    ....
    .....
    ......

}
在forloop中,我有大约20个if循环,如上所述。它是导致内存问题的原因吗


有人能给我建议如何克服这个内存问题吗?

在谷歌搜索了
perl“内存无法写入”
之后,我猜问题可能来自于在内存中一次加载所有文件,例如,请参阅,或者(不太可能)来自混合使用不同编译器编译的模块(例如,将Activestate包与Cygwin perl一起使用,请参阅)


对于处理大型文件的XML::Twig,您需要告诉它在哪个级别处理部分文件(通常通过定义处理子树的处理程序,然后丢弃它),请参阅模块的文档。

您能否演示如何实例化和规范
XML::Twig
对象?您似乎没有利用
XML::Twig
的方法来限制内存使用,但正如Zaid所暗示的那样,如果没有更多的细节,这是不可能的。