UR
view release on metacpan or search on metacpan
lib/UR/Context/Transaction.pm view on Meta::CPAN
sub eval(&) {
my $is_failure = sub {
my ($result, $eval_error) = @_;
return $eval_error;
};
return eval_or_do($is_failure, @_);
}
# do function takes a block (&) sort of like CORE::do
# do will rollback on a false result as well as before re-throwing a caught die
sub do(&) {
my $is_failure = sub {
my ($result, $eval_error) = @_;
return !$result || $eval_error;
};
my ($result, $eval_error) = eval_or_do($is_failure, @_);
if ($eval_error) {
croak $eval_error, "\t...propogated";
}
return $result;
}
( run in 2.005 seconds using v1.01-cache-2.11-cpan-f4a522933cf )