 
 
 
|  | 
A variable can be declared at the point of use in an iterator, and its scope is until the end of the perform block.
      *>   In this case, the scope of i is until the end of the perform block. 
           perform varying i as binary-long from 1 by 1 until i > 10
               display i
           end-perform
      *>   So the i in the following perform block is a new instance of i,
      *>   independent of the i in the preceding perform block.
           perform varying i as binary-short from 0 by 1 until i > 10
               display i
           end-perform
 
		Here, k is declared inline to iterate through a dictionary. Again, it is in scope until the corresponding end-perform.
    01 dict1 dictionary[string string].
           create dict1
           write dict1 from "Anthony" key "A"
           write dict1 from "Brian" key "B"
           write dict1 from "Charles" key "C"
           perform varying key k as string value val as string through dict1
               display k ":" val
           end-perform
           perform varying value val as string through dict1
               display val
           end-perform
           perform varying key k as string through dict1
               display k
           end-perform
 
		See also the Local Variables sample, available from Start > All Programs > Micro Focus Studio Enterprise Edition x.x > Samples, under COBOL for .NET .
 
 
