Domingo 19 Mai 2024

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;