以下のロジックを書きたいと思います。ループ全体が成功した場合 (つまり、ループのオブジェクトである配列のすべての要素が変換された場合)、データベース操作 (コミット) が続きます。
私は次のように書いた:
if ($room->save ){ # this line i cant modify
for ( @{ $room->members } ) {
if ( $_->save ){
$room->ds->commit;
} else {
return $c->render_ng_json("fail");
}
}
私の問題は、私のコードでは、 $_->save が成功するたびにデータベース操作が適用され、コストがかかりすぎることです。12 個のメンバーがあり、それぞれが正常に保存された場合、12 回コミットが試行されます。ループ全体にエラーがないかどうか (つまり、すべてのメンバーが保存されたかどうか) を perl に分析してもらい、その場合にのみコミットします。このロジックをどのように記述しますか?