我有一个perl脚本,我希望用户能够选择输出是在Gzip还是纯文本文件中。我正在使用perl IO::zlib
,其想法是检查输出文件名,如果它有.gz
扩展名,则使用Gzip,否则只能以纯文本格式打印。我正在使用如下命令:
my $EXCL = new IO::Zlib;
$EXCL->open($out_file, (substr($out_file, -3) eq '.gz' ? "wb9" : "wT")) || die("ERROR: cannot open EXCL file!") if($out_file);
但输出文件总是被压缩! 我做错了吗?
感谢,
答案 0 :(得分:1)
为什么要将IO :: Zlib用于未压缩的文件?
my $fh;
if (substr($out_file, -3) eq '.gz') {
$fh = IO::ZLib->new($out_file) or die "Error opening $out_file: $!";
} else {
open $fh, '>', $out_file or die "Error opening $out_file: $!";
}
我在http://search.cpan.org/~tomhughes/IO-Zlib-1.10/Zlib.pm或http://search.cpan.org/~pmqs/IO-Compress-2.069/lib/Compress/Zlib.pm
中找不到任何 wT 模式PS:在文件打开相关的错误消息中包含文件名和系统错误($!)总是很好。