我想逐行读取文件:
#!/usr/bin/env perl
use strict;
use warnings;
open my $fh, '<', "file.txt" or die "Can't read file.txt: $!";
while (<$fh>) {
}
close $fh;
但我找不到如何为压缩文件执行此操作,例如bz2和gz。
我无法理解documentation for IO::Uncompress::Bunzip2
我如何在一个真实的程序中实现它。
如何像普通文件一样逐行读取压缩文件?
答案 0 :(得分:2)
试试这个:
use strict;
use warnings;
use IO::Uncompress::Bunzip2 '$Bunzip2Error';
my $file = "somefile.txt.bz2";
my $zh = IO::Uncompress::Bunzip2->new( $file, {
AutoClose => 1,
Transparent => 1,
} ) or die "IO::Uncompress::Bunzip2 failed: $Bunzip2Error\n";
while ( <$zh> ) {
print;
}