【发布时间】:2020-03-24 16:06:28
【问题描述】:
以下脚本会创建一个名为“input.gz”的 gzip 文件。然后脚本尝试使用gzip -dc 打开“input.gz”。直观地说,如果提供了错误的输入文件名,则应该触发die。但是,如以下脚本所示,即使提供了错误的输入文件名(“inputx.gz”),程序也不会die:
use warnings;
use strict;
system("echo PASS | gzip -c > input.gz");
open(IN,"-|","gzip -dc inputx.gz") || die "can't open input.gz!";
print STDOUT "die statment was not triggered!\n";
close IN;
上面脚本的输出是
die statment was not triggered!
gzip: inputx.gz: No such file or directory
我的问题是:为什么die 语句没有被触发,即使gzip 因错误退出?以及如何在给出错误文件名时触发die 语句?
【问题讨论】:
-
gzip退出并出现错误,但open没有失败。