HELP GOSUB — VMS 5.0
Transfers control to a labeled subroutine in a command procedure.
Format:
GOSUB label
Additional information available:
Parameters
label Specifies a 1- through 255-alphanumeric character label appearing as the first item on a command line. A label may not contain embedded blanks. When the GOSUB command is executed, control passes to the command following the specified label. The label can precede or follow the GOSUB statement in the current command procedure. When you use a label in a command procedure, it must be terminated with a colon.
Examples
1.
$!
$! GOSUB.COM
$!
$ SHOW TIME
$ GOSUB TEST1
$ WRITE SYS$OUTPUT "success completion"
$ EXIT
$!
$! TEST1 GOSUB definition
$!
$ TEST1:
$ WRITE SYS$OUTPUT "This is GOSUB level 1."
$ GOSUB TEST2
$ RETURN %X1
$!
$! TEST2 GOSUB definition
$!
$ TEST2:
$ WRITE SYS$OUTPUT "This is GOSUB level 2."
$ GOSUB TEST3
$ RETURN
$!
$! TEST3 GOSUB definition
$!
$ TEST3:
$ WRITE SYS$OUTPUT "This is GOSUB level 3."
$ RETURN
This command procedure shows how to use the GOSUB command to
transfer control to labeled subroutines. The GOSUB command
transfers control to the subroutine labeled TEST1. The procedure
executes the commands in subroutine TEST1, branching to the
subroutine labeled TEST2. The procedure then executes the commands
in subroutine TEST2, branching to the subroutine labeled TEST3.
Each subroutine is terminated by the RETURN command. After TEST3 is
executed, the RETURN command returns control back to the command
line following each calling GOSUB statement. At this point, the
procedure has been successfully executed.