Innerhalb des eval{} Blockes ist für wantarray ein neuer Context,
in diesem Falle ist wantarray hier nicht definiert.
Deshalb muss dies per Variable in den eval-Block übergeben werden
+ my $return_array = wantarray;
? $self->do_transaction(sub { @result = $code->(@args) })
: $self->do_transaction(sub { $result = $code->(@args) });
} or do {
? $self->do_transaction(sub { @result = $code->(@args) })
: $self->do_transaction(sub { $result = $code->(@args) });
} or do {
- return wantarray ? @result : $result;
+ return $return_array ? @result : $result;