我正在使用Perl来解析一个文本文件,该文件可能是也可能不是gzip:
my $FILE;
if ( $file =~ /\.gz$/ ) {
open( $FILE, "gunzip -c $file |" ) || die $!;
} else {
open( $FILE, '<', $file ) || die $!;
}
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来处理这个?
核心模块IO :: Uncompress :: Gunzip返回一个文件句柄,如果文件未压缩/未知默认将文件句柄传递给原始文件,这对我有用 ;
use IO::Uncompress::Gunzip qw($GunzipError);
# Random file, plain text, and gzipped
my $file=('file.in', 'file.in.gz')[rand 2];
print "Picked $file\n";
# Get file Handle
my $FILE = IO::Uncompress::Gunzip->new( $file )
or die "Problem found with $file: $GunzipError";
while(<$FILE>) { print; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |