Revision 611b4916
Von Martin Helmling martin.helmling@octosoft.eu vor fast 8 Jahren hinzugefügt
SL/DB.pm | ||
---|---|---|
132 | 132 |
my $rv = 1; |
133 | 133 |
|
134 | 134 |
local $@; |
135 |
|
|
135 |
my $return_array = wantarray; |
|
136 | 136 |
eval { |
137 |
wantarray
|
|
137 |
$return_array
|
|
138 | 138 |
? $self->do_transaction(sub { @result = $code->(@args) }) |
139 | 139 |
: $self->do_transaction(sub { $result = $code->(@args) }); |
140 | 140 |
} or do { |
... | ... | |
150 | 150 |
} |
151 | 151 |
}; |
152 | 152 |
|
153 |
return wantarray ? @result : $result;
|
|
153 |
return $return_array ? @result : $result;
|
|
154 | 154 |
} |
155 | 155 |
|
156 | 156 |
1; |
Auch abrufbar als: Unified diff
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