我正在编写运行各种外部命令的代码以及可能失败的各种文件系统命令。
是否有任何模块可以省去将or die
添加到可能失败的任何内容的麻烦?
我希望能够将以下内容包含在内,而不是:
mkdir $dirname or die "can't create directory $dirname";
system("some external command") or die "can run some external command";
我明白了:
some_wrapper_code {
mkdir $dirname;
system("some external command");
}
如果mkdir
失败,它会告诉我失败在mkdir
,如果system
失败,它会告诉我失败在{{1} }。
答案 0 :(得分:32)
是的。从CPAN中查看autodie
。
来自文档:
autodie
pragma提供了一种方便的方法来替换通常返回的函数 失败时返回false,等同于失败时抛出异常。
autodie
pragma具有词法范围,这意味着函数和子例程已更改为autodie
只会在封闭的块,文件或结尾之前更改其行为eval
。