昨天写perl代码,引用的一个类库遇到某个不算错误的错误,直接给我die了,令后面的代码无法运行,后来查找资料,没找到类似try catch的语法,倒是发现eval可以完成类似功能。eval可以在运行时构造代码并运行,如果运行的代码有致命错误,则eval退出,但是整个程序不会退出。退出后通过判断 $@ 可以知道是否出错。eval的功能很强大,适当得利用他,可以用程序来写程序。javascript里也有一个eval。

eval {
    #代码
};
if ($@) {
    #出错处理
}