|
348
|
5 |
11 |
0 |
do {
$err->isa($pkg) if &Scalar::Util::blessed($err)
} && do {
$code = $$catch[$i + 1];
while (1) {
my $more = 0;
local($Error::THROWN, $@);
my $ok = eval {
do {
$@ = $err;
if ($wantarray) {
@{$result;} = &$code($err, \$more);
}
elsif (defined $wantarray) {
@{$result;} = ();
$result->[0] = &$code($err, \$more);
}
else {
&$code($err, \$more);
};
1
}
};
if ($ok) {
next CATCHLOOP if $more;
undef $err;
}
else {
$err = $@ || $Error::THROWN;
$err = &$Error::ObjectifyCallback({'text', $err}) unless ref $err;
};
last CATCH;
}
} |