Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有以下 perl 代码尝试将字符串写入新创建的文件:
open(OUT, ">$file") or die "file out error!\n"; print OUT $string;
通常,此代码可以正常工作。如果我们对 $file 所在的目录没有写权限,程序就会失败,这是意料之中的。但是,不是打印“文件输出错误!” 作为错误消息,程序只是以退出代码 13(权限被拒绝)退出。
我认为您混淆了程序退出代码及其标准系统系统错误代码的报告。错误代码 ( errno) 13 等同于“权限被拒绝”。
errno
perl -lE '$!=13;say $!' Permission denied perl -lE '$!=32;say $!' Broken pipe
当然,实际消息可能会因您的操作系统而略有不同。
就此而言,为打开构建错误消息的更好(IMO)方法是:`open OUT,">","$file" 或 die "Can't open $file: $!\n" .