PERFORM subr(prog) [IF FOUND] [parameter_list].
A variant of the external subroutine call that is not
allowed in classes. The statement
PERFORM calls the statically declared subroutine
subr of a program
prog. If the specified subroutine
or program does not exist, and the addition
IF FOUND is specified, the statement
PERFORM is ignored. Otherwise, the system returns a syntax error or runtime error.
In this variant, the program name
progis specified directly in parentheses. Since parentheses in operand positions indicate a dynamic specification in all other cases, this form of the name is obsolete. Specify it with the addition
- External calls of subroutines are obsolete in any case. Instead of subroutines, you can use methods and function modules as explicit functional interfaces of a program.
- Furthermore, external calls of subroutines are critical, since it cannot usually be statically determined to which program groups the framework program is assigned.
To call a subroutine in a program in a different package, the declaration of the subroutine must be
shared between a declaration part and an implemenation part using
FORM - DEFINITION, IMPLEMENTATION; the declaration part must always be public in the package interface.