The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

use Error qw(:try);
@Error::Fatal::ISA = qw(Error);
print "1..6\n";
$num = try {
try {
try {
throw Error::Simple("ok 1\n");
}
catch Error::Simple with {
my $err = shift;
print $err;
throw Error::Fatal(-value => 4);
print "not ok 3\n";
}
catch Error::Fatal with {
exit(1);
}
finally {
print "ok 2\n";
};
} finally {
print "ok 3\n";
};
}
catch Error::Fatal with {
my $err = shift;
my $more = shift;
$$more = 1;
print "ok ",0+$err,"\n";
}
catch Error::Fatal with {
my $err = shift;
print "ok ",1+$err,"\n";
return 6;
}
catch Error::Fatal with {
my $err = shift;
print "not ok ",2+$err,"\n";
};
print "ok ",$num,"\n";