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 回答