Try :: Tiny无法使用perl中的退出语句

Gan*_*esh 3 perl cpan

我试图使用cpan中的Try :: Tiny包,并编写了如下的简单代码

use strict;
use Try::Tiny;
print "before try block";
try {
        print "try block";
        my $test = 10/0;
} catch {
        print "got error :- $_ \n";
}
exit;
Run Code Online (Sandbox Code Playgroud)

当我执行它时,它显示没有错误,并给出o/p像"在尝试块之前"并结束而不打印"try block"语句.

但是当我发表评论时

#exit;
Run Code Online (Sandbox Code Playgroud)

我工作正常并在catch块中显示print语句,我做错了什么?只是想找出问题所在.

Kar*_*k T 6

我认为你;在try-catch的最后需要一个(分号)

} catch {
        print "got error :- $_ \n";
};
Run Code Online (Sandbox Code Playgroud)

从他们在cpan上的例子

此外,你需要exit??

(ysth提供)
解释: catch有两个参数:一个代码块,一个可选参数,意图是finally子句...但是这里它被传递exit的返回值作为第二个参数,它会抱怨除了退出永远不会返回.

  • 解释:catch有两个参数:一个代码块,一个可选的参数,意图是finally子句......但是这里传递的是exit的返回值作为第二个参数,它会抱怨,除了退出永远不会返回. (7认同)