访问try块内分配的var会抛出错误:未知代码引用类型给出错误''.检查您的使用情况,然后重试

Eni*_*ihr 5 perl

我试图弄清楚为什么会抛出这个错误.如果在try块内部发生错误而不打印10,它不应该只打印0吗?

#!/usr/bin/perl

use 5.006;
use strict;
use warnings;
use Try::Tiny;

my $test = 0;
try{
    $test = 10;
    my $s = $test /2;
}
catch{
    print $_;
}

print $test;
Run Code Online (Sandbox Code Playgroud)

yst*_*sth 8

你错过了; 在try/catch"声明"之后; 你的代码传递了print $test作为额外参数的结果,以捕获它期望finally子句的位置,并在它进入try块之前死掉.

  • @ user2148105,`try`只是Try :: Tiny导出的函数.这不是一个声明,所以需要一个`;`. (4认同)