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