如果文件不存在,为什么我的Perl管道没有zcat死?

前端之家收集整理的这篇文章主要介绍了如果文件不存在,为什么我的Perl管道没有zcat死?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我的gz文件不存在,为什么不DIE呢?

$cat test.pl    
open(FILE,"zcat dummy.gz |") or die "DIE";

$./test.pl    
zcat: dummy.gz: No such file or directory

如果我正常读取文件,它按预期工作:

$cat test2.pl    
open(FILE,"dummy.gz") or die "DIE";

$./test2.pl    
DIE at ./test.pl line 2.

解决方法

您的打开成功(因为它成功运行zcat),在关闭文件描述符之前,您将无法获得zcat的退出代码.

您可能想要在开始之前检查文件是否存在且可读,例如.

die "unable to read file" unless (-f "dummy.gz" and -r "dummy.gz")

猜你在找的Perl相关文章