インライン PERFORM は、プログラムの通常フローで実行される命令ステートメントです。ライン外 PERFORM は、指定された段落への分岐およびその段落からの暗黙の戻りを引き起こします。
インラインまたはライン外のいずれの PERFORM ステートメントをコーディングするかを決定するには、以下の点を考慮してください。
プログラム内の幾つかの場所で同じコード部分を使用したい場合、ライン 外 PERFORM を使用してください。
実行するコードが短い場合は、インライン PERFORM の方が読みやすくなります。 ただし、コードがいくつもの画面にわたる場合は、ライン外 PERFORM を使用した方が、プログラムのロジック・フローは分かりやすくなります。 (ただし、構造化プログラミングの各段落は 1 つの論理機能を実行するようにする必要があります。)
インライン PERFORM の場合は、ライン外 PERFORM で発生する分岐のオーバーヘッドが避けられます。 しかし、ライン外 PERFORM コーディングでもコード最適化を利用できるので、効率性を過度に重要視する必要はありません。
1974 COBOL 標準では、PERFORM ステートメントはライン外であり、このため、別の段落への分岐と暗黙の戻りが必要になります。 実行された段落が、プログラムのそれ以降の順次フローの中にある場合は、ロジック・フローの中でもう 1 度実行されます。 この追加の実行を回避するためには、段落を通常の順次フローの外側 (例えば、GOBACK の後) に置くか、または段落のそばに分岐をコーディングしてください。
インライン PERFORM のサブジェクトは、命令ステートメントです。したがって、インライン PERFORM 内のステートメント (命令ステートメント以外) は、明示範囲終了符号を付けてコーディングしなければなりません。