【发布时间】:2009-08-17 15:32:28
【问题描述】:
我有一个 Perl 脚本,作为其最后步骤之一,它创建了它创建的文件的压缩版本。由于一些不幸的设置,我们不能保证给定的客户将具有特定的压缩功能。我想把这样的东西放在一起:
if ($has_jar) {
system("jar -c $compressed_file $infile");
}
elsif ($has_zip) {
system("zip -j $compressed_file $infile");
}
else {
copy($infile, $compressed_file);
}
如果他们没有任何压缩应用程序,它只会将文件复制到压缩文件的位置而不压缩它。
我在这里的粘性检票口是我不太确定确定他们是否有罐子或拉链的最佳方法是什么。看起来我可以使用 exec() 而不是 system() 并利用它仅在失败时返回的事实,但脚本实际上确实做了一些之后的事情,这样就行不通了。
我还需要这是一个可移植的解决方案,因为该脚本可以在 Windows 和各种 Unix 发行版上运行。提前致谢。
【问题讨论】:
-
它会在 5.10.0 之前的 perls 上运行吗?
-
是的。尝试了两台不同的机器,得到了 5.8.4 和 5.8.0。