PERFORM procedure-name-1 THROUGH procedure-name-2
VARYING identifier-2 FROM identifier-3
BY identifier-4 UNTIL condition-1
At the end of PERFORM statement execution identifier-2 has a value that exceeds the last-used setting by the increment/decrement value (unless condition-1 was true at the beginning of PERFORM statement execution, in which case, identifier-2 contains the current value of identifier-3).
Figure 1 illustrates the logic of the PERFORM statement when an identifier is varied with TEST BEFORE. Figure 2 illustrates the logic of the PERFORM statement when an identifier is varied with TEST AFTER.

