- IO::Uncompress::Unzip
- Archive::Zip
さらっとperldoc 読んだ感じでは、IO::Uncompress::Unzip のほうが使いやすいかなーと思った。メソッド名が短くて書きやすいことと、複数のファイルを圧縮しているとき(multiple compressed files) に、特定のファイルだけを展開したい場合などで。(これはArchive::Zip でもできるかも)。
まぁ展開できればどっちでもいいんだけど。
use IO::Uncompress::Unzip qw(unzip $UnzipError); ## functional interface #### print stdout my $status = unzip 'hoge.zip' => '-', { MultiStream => 1, NAME => 'foo.log' }; ## OO interface my $z = IO::Uncompress::Unzip->new( 'hoge.zip', MultiStream => 1, NAME => 'foo.log', ); while (my $line = <$z>) { chomp $line; print "$line\n"; }