1

約 60 MB の tar.gz ファイルがあり、そのファイルには XML ファイルが含まれています...そして、ファイルの抽出中にメモリ不足になりました! エラー...以下は、ファイルの抽出に使用しているコードです....

use strict;
use warnings;
use Archive::Extract;
$TAR_FILE_PATH = 'C:/Perl/IN/test_sample.tar.gz';
$WPARK_DIR = 'C:/Srinivas/Perl/WORK';
my $extract_obj = Archive::Extract->new(archive => $TAR_FILE_PATH, type => 'tgz');
$extract_obj->extract(to => $WORK_DIR);

tar.gz ファイルを WORK_DIR に抽出しているときに、最後の行で失敗します。誰かがこれを処理し、tar.gz ファイル内の巨大な XML ファイルを抽出する最良の方法を提案できますか..

4

1 に答える 1

1

Archive::Extract モジュールは、純粋な perl ソリューションを使用するか、システム コールにフォールバックできます。PREFER_BIN を設定して、メモリをあまり消費しないシステム コールを強制的に使用することができます。

http://perldoc.perl.org/Archive/Extract.html#Supporting-Very-Large-Files

于 2013-07-11T05:35:08.797 に答える