我目前正在使用核心模块IO :: Uncompress :: Unzip来读取Perl中zip文件的内容。 我之前使用的是Archive :: Zip,这是一个很棒的模块,并没有给我带来许多令人头疼的问题,但它没有被捆绑为核心模块。
我想获取zip文件中压缩文件的最后修改时间。 例如,我有以下文件:" test.zip"其中包含" 1.txt"," 2.txt"," 3.txt"。例如,今天最后一次修改了zip,而一周前修改了txt文件。 如何在zip中获取每个压缩文件的最后修改日期? 我可以使用Archive :: Zip轻松完成此操作,但不能使用此模块。
以下是我使用的代码:
use strict;
use warnings;
use IO::Uncompress::Unzip qw($UnzipError);
my $zipfile = 'test.zip';
my $u = new IO::Uncompress::Unzip $zipfile
or die "Cannot open $zipfile: $UnzipError";
for (my $status = 1; $status > 0; $status = $u->nextStream) {
my $name = $u->getHeaderInfo->{Name};
# my $date = ctime(stat($u)->mtime); -> This doesn't work, even though $u is considered as a filehandle in the IO::Uncompress::Unzip documentation..
warn "Processing member $name\n" ;
while(<$u>) {
print "Line $. -> $_";
}
}
解决我的问题的任何想法或解决方法?
谢谢!
答案 0 :(得分:4)
您可以尝试$u->getHeaderInfo->{Time}
使用
检查所有属性use Data::Dumper;
print Dumper scalar $u->getHeaderInfo;