The PERFORM statement executes one or more procedures. It returns control to the end of the PERFORM statement when procedure execution ends. Format 4 - PERFORM [first-proc [ { THRU } end-proc ]] [ WITH TEST { BEFORE } ] [ [ { THROUGH } ]] [ { AFTER } ] VARYING var FROM init BY increm UNTIL cond [ AFTER var FROM init BY increm UNTIL cond ] ... [ stment END-PERFORM ]
1 – first-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in first-proc are the first (or only) set of statements in the PERFORM range.
2 – end-proc
is a procedure-name that identifies a paragraph or section in the Procedure Division. The set of statements in end-proc are the last set of statements in the PERFORM range.
3 – stment
is an imperative statement.
4 – cond
can be any conditional expression.
5 – var
is an index-name or the identifier of a numeric elementary data item. Its value is changed by increm each time all statements in the PERFORM range execute.
6 – init
is a numeric literal, index-name, or the identifier of a numeric elementary data item. It specifies the value of var before any statement in the PERFORM range executes.
7 – increm
is a nonzero numeric literal or the identifier of a numeric elementary data item. It systematically changes the value of var each time the program executes all statements in the PERFORM range.