首页 > 解决方案 > 在 Cobol 中,为什么你会有一个不存在段落名称的 PERFORM THRU

问题描述

我试图弄清楚 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.

标签: cobol

解决方案


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

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

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


推荐阅读