在 Cobol 中,为什么要使用不存在的段落名称执行 PERFORM THRU

In Cobol why would you have a PERFORM THRU with non existent paragraph names

我想弄清楚下面的 PERFORM 命令的用途是什么。代码是 20 年前写的。 ACPY-READ-FIRST、ACPY-READ-NEXT 和 ACPY-EXIT 在程序的任何地方都不存在。

  MOVE ACPY-ID                TO WS-ACPY-ID.
       PERFORM ACPY-READ-FIRST THRU ACPY-EXIT.
   150-PYMTS.
       PERFORM ACPY-READ-NEXT  THRU ACPY-EXIT.
       IF  NOT SUCCESSFUL      OR
           ACCT-ID NOT = ACPY-ACCT-ID
               GO TO 160-DONE.

答案:你不会,因为这会在每个编译器中产生语法错误。

段落(甚至部分,但我会寻找前者)必须位于源单元中的某个位置,我会说:95% 的可能性可以在 COPY 语句(= COBOL 的“include”),4% 是由用于处理它的代码生成器插入的,1% 是您刚刚忽略的(COBOL 不区分大小写,以防万一)。

提示:如果您拥有所有必要的资源,您可以使用 GnuCOBOL 来处理它并创建一个列表,向您显示包含段落的字帖。