/usr/share/perl5/Catmandu/Transactional.pm is in libcatmandu-perl 1.0700-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | package Catmandu::Transactional;
use Catmandu::Sane;
our $VERSION = '1.07';
use Moo::Role;
use namespace::clean;
requires 'transaction';
1;
__END__
=pod
=head1 NAME
Catmandu::Transactional - Optional role for transactional stores
=head1 SYNOPSIS
# bag will be untouched
my $store->transaction(sub {
$store->bag('books')->add({title => 'Time must have a stop'});
die;
});
=head1 METHODS
=head2 transaction($sub)
C<transaction> takes a coderef that will be executed in the context of a
transaction. If an error is thrown, the transaction will rollback. If the code
executes successfully, the transaction will be committed. There is no support
for nested transactions, nested calls to C<transaction> will simply be subsumed
by their parent transaction.
=cut
|