O comando PERFORM transfere o controle explicitamente para uma ou mais declarações e retorna implicitamente o controle à próxima instrução executável após a conclusão das instruções especificadas. As palavras-chave não podem ser abreviadas.
Simples:
.---------. V | >>-PERFORM----command-+--END-PERFORM--;------------------------><
command
Um válido z/OS Debugger comando.
Recorrente:
>>-PERFORM--+----------------------------+----------------------> | .-BEFORE-. | '-+------+--TEST--+--------+-' '-WITH-' '-AFTER--' >--+----------------------------------------------------+-------> '-VARYING--reference--FROM--reference--BY--reference-' .---------. V | >--UNTIL--condition----command-+--END-PERFORM--;---------------><
reference
Um válido z/OS Debugger referência COBOL.
condition
Uma condição de relação simples.
command
Um válido z/OS Debugger comando.
Notas:
- Uma constante como uma referência é permitido apenas no lado direito da FROM e BY palavras-chave.
- Nomes de índice e variáveis de ponto flutuante não podem ser VARYING referências .
- Os nomes de índice não são suportados no BY.
- Somente em linha PERFORM são suportadas (mas o comando executado pode ser um z/OS Debugger procedimento de invocação).
- O comando AFTER não é suportada.
- Os campos de data de janela não podem ser VARYING, FROM, ou BY.
- Para programas COBOL otimizados, o Executar Comando não pode referenciar qualquer variável que foi descartada pelo otimizador.
- Para os programas COBOL otimizados, Variando Frase é especificada, a primeira referência só pode referir-se a uma variável de sessão.
- Se você A REPRODUÇÃO É ATIVADA com o DADOS Ea unidade de compilação suporta o DADOS Parâmetro, o Executar Comando pode fazer referência a uma variável de VariandoO operando (se especificado) deve fazer referência a uma variável de sessão.
Por exemplo:
PERFORM VARYING session-var-1 FROM program-var-1 BY program-var-2 UNTIL program-var-3 = program-var-4
Exemplos:
- Defina um ponto de interrupção na instrução número 10 para mover o valor da variável Um Para a variável B Lista o valor de X.
AT 10 PERFORM MOVE a TO b; LIST (x); END-PERFORM;
- Liste o valor de Altura Para cada valor par entre 2 e 30, incluindo 2 e 30.
PERFORM WITH TEST AFTER VARYING height FROM 2 BY 2 UNTIL height = 30 LIST height; END-PERFORM;