2012-01-31 11 views
4

::小枝が、perlの構文解析はエラーで失敗します。大規模なXMLファイルの解析は、XMLを使用して、失敗した:: TWIG

perl.exe - Application Error: 
The instruction at "0x28086920" referenced memory at "0x00000004". The memory could not be "written"... 

私はXML::Twig解析する読みます大きなxmlファイルは何の問題もありませんが、私の場合は上記のエラーで失敗します。私が持っている約20のループであれば、上記のようにforloop内部

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

} 

私の.plファイルは、以下のように10万回を回転させるforloopコードを持っています。メモリの問題を引き起こしていますか?

誰も私にこのメモリの問題を克服する方法を教えてもらえますか?

+2

'XML :: Twig'オブジェクトがどのようにインスタンス化されspec'dされているかを示すことができますか? – Zaid

+1

メモリ使用量を制限するための 'XML :: Twig'のメソッドを利用していない可能性は高いですが、Zaidと同様、詳細は言わない限り不可能です。 – flesk

答えて

6

perl "The memory could not be written"のためにグーグル後、私は例えばCygwinのではActiveStateのパッケージを使用して(異なるコンパイラでコンパイルされたモジュールを混合から例http://www.perlmonks.org/?node_id=457265か(少ない)を参照、メモリ内のすべてを一度にファイルをロードするから問題がいずれかの来ることを推測しますperl、http://cygwin.com/ml/cygwin/2006-12/msg00798.htmlを参照)。

XML :: Twigが巨大なファイルを処理するには、ファイルの一部を処理するレベルを伝える必要があります(通常、サブツリーを処理したハンドラを定義して破棄します)。モジュール

関連する問題