現在、コア モジュール IO::Uncompress::Unzip を使用して、Perl で zip ファイルの内容を読み取っています。私は以前、優れたモジュールである Archive::Zip を使用していましたが、それほど頭を悩ませることはありませんでしたが、コア モジュールとしてバンドルされていません。
zip ファイルに圧縮されたファイルの最終更新時刻を取得したいと考えています。たとえば、「1.txt」、「2.txt」、「3.txt」を含む「test.zip」というファイルがあります。たとえば、zip は今日最後に変更されましたが、txt ファイルは 1 週間前に変更されました。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 $. -> $_";
}
}
私の問題を解決するためのアイデアや回避策はありますか?
ありがとう !