From: Martin Helmling martin.helmling@octosoft.eu Date: Fri, 17 Feb 2017 08:59:24 +0000 (+0100) Subject: DB Transaktionen - Array Context funktioniert nicht X-Git-Tag: release-3.5.4~1439 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=611b4916a5d427325552ef2367a5a3b65938e960;p=kivitendo-erp.git DB Transaktionen - Array Context funktioniert nicht 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 --- diff --git a/SL/DB.pm b/SL/DB.pm index 29d0090ca..79a251a09 100644 --- a/SL/DB.pm +++ b/SL/DB.pm @@ -132,9 +132,9 @@ sub with_transaction { my $rv = 1; local $@; - + my $return_array = wantarray; eval { - wantarray + $return_array ? $self->do_transaction(sub { @result = $code->(@args) }) : $self->do_transaction(sub { $result = $code->(@args) }); } or do { @@ -150,7 +150,7 @@ sub with_transaction { } }; - return wantarray ? @result : $result; + return $return_array ? @result : $result; } 1;