Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 611b4916

Von Martin Helmling martin.helmling@octosoft.eu vor fast 8 Jahren hinzugefügt

  • ID 611b4916a5d427325552ef2367a5a3b65938e960
  • Vorgänger 3c54df1c
  • Nachfolger 3ea2fdd1

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

Unterschiede anzeigen:

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