我有一个大约60 MB的tar.gz文件,并且该文件里面有一个XML文件......在提取文件时我得到 Out Of Memory!错误...... 以下是我用于提取文件的代码....
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文件..
答案 0 :(得分:1)
Archive :: Extract模块可以使用纯perl解决方案,也可以回退到系统调用。您可以设置PREFER_BIN以强制它使用内存密集程度较低的系统调用。
http://perldoc.perl.org/Archive/Extract.html#Supporting-Very-Large-Files