我有一个tar.gz文件,里面有一个很大的XML。我需要在perl中使用Archive::tar解压缩文件...我使用了下面的代码,它只从tar.gz文件中提取压缩的XML文件。但我还需要在一个步骤中提取XML ...我正在使用下面的代码...
 TAR__PATH= 'C:\\Perl\IN\Work\tar_file_20130426.xml.tar
 my $extract_obj = Archive::Extract->new(archive => $TAR_FILE_WORK_PATH, type => 'tar');发布于 2013-04-30 16:59:12
使用下面的代码;
use Archive::Tar;
my $tar=Archive::Tar->new();
$tar->read('/path/of/tar/test.tar.gz');
$tar->extract();它将提取当前路径中的内容。希望它能行得通。
发布于 2013-04-30 20:03:55
当Archive::Tar将整个归档文件加载到内存中时,您可能希望对tar执行系统调用(在完成之前对其进行反标记,并给出结果
一些类似的东西
my $ret = `tar zxf $TAR_FILE_WORK_PATH`;然后检查$ret是否成功。
您可以使用详细( -v )选项获得更多输出,以便签入$ret
大多数tar命令都有一个-C选项,用于解压缩到指定的目录,这也很有用。
发布于 2014-06-05 15:26:29
如果是放在tar.gz中的.xml,这里是使用Archive::Extract的另一个实现。在单行形式中
perl -MArchive::Extract -e "Archive::Extract->new( archive => 'src/PPM-2.50_01.tar.gz' )->extract()"在源代码形式中:
use Archive::Extract;
Archive::Extract->new( archive => 'src/PPM-2.50_01.tar.gz' )->extract();https://stackoverflow.com/questions/16295369
复制相似问题