perl IO :: zlib打印纯文本文件

时间:2016-04-23 15:36:34

标签: perl zlib

我有一个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);

但输出文件总是被压缩! 我做错了吗?

感谢,

1 个答案:

答案 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.pmhttp://search.cpan.org/~pmqs/IO-Compress-2.069/lib/Compress/Zlib.pm

中找不到任何 wT 模式

PS:在文件打开相关的错误消息中包含文件名和系统错误($!)总是很好。