From 611b4916a5d427325552ef2367a5a3b65938e960 Mon Sep 17 00:00:00 2001 From: "Martin Helmling martin.helmling@octosoft.eu" Date: Fri, 17 Feb 2017 09:59:24 +0100 Subject: [PATCH] DB Transaktionen - Array Context funktioniert nicht MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- SL/DB.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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; -- 2.20.1