(see also Parameters for a REXX program)
To many new REXX users it's not clear when to use parse arg1, arg2, arg3 and when to use parse arg1 arg2 arg3
The simplest answer is:
parse arg1 arg2 arg3 is only used for parsing the parameter passed to a REXX program.
In every other case (internal and external REXX routines routines from DLLs, routines from within the macro space) you should use parse arg1, arg2, arg3
/* sample program to show the difference between parse arg */
/* with and without commas */
/* get our name */
parse source . . thisProgram
if arg(1) = "" then
do
say "Now calling this program as an external program"
say "(This is the same as if you call it in an OS/2 window)"
cmdLine = thisProgram 'test1, test2, test3, test4,test5'
say "==>> " cmdline
'cmd /c ' cmdLIne
say ""
say "Now calling this program as an external procedure"
rexxlIne = 'call ' fileSpec( 'N', thisProgram ) "test1, test2, test3, test4,test5"
say "==>> " rexxline
interpret rexxline
exit
end /* if */
say ' The result of "parse arg1, arg2, arg3, arg4, arg5" is'
parse arg arg1, arg2, arg3, arg4, arg5
say ' arg1 is "' || arg1 || '"'
say ' arg2 is "' || arg2 || '"'
say ' arg3 is "' || arg3 || '"'
say ' arg4 is "' || arg4 || '"'
say ' arg5 is "' || arg5 || '"'
say ' The result of "parse arg1 arg2 arg3 arg4 arg5" is'
parse arg arg1 arg2 arg3 arg4 arg5
say ' arg1 is "' || arg1 || '"'
say ' arg2 is "' || arg2 || '"'
say ' arg3 is "' || arg3 || '"'
say ' arg4 is "' || arg4 || '"'
say ' arg5 is "' || arg5 || '"'
exit 0