Что я пробовал:
Программа А:
call PROGRAMB ARRAY val1 val2
ПРОГРАММА Б:
PARSE arg ARRAY val1 val2
/* test to see if ARRAY is passed successfully */
/* len1 equals the length of ARRAY */
interpret "len1 = "ARRAY".0"
say 'len1: ' len1
DO i=0 TO len1
say 'current line: '
interpret "say "ARRAY".i"
END;
Ожидаемые результаты:
- len1 будет эквивалентен длине массива. Например, если ARRAY = [1,2,3], len будет равно 3.
- Каждый элемент массива должен быть напечатан.
Фактические результаты:
- len1 эквивалентен «JOBCARD.0», а не фактической длине.
- Программа завершается сбоем в цикле for из-за ошибки IRX0041I (неверное арифметическое преобразование) и не выводит элементы/
Решения, которые я пробовал:
https://www.bde-gmbh.de/tipps-tricks/zos-rexx/how-to-pass-stems-as-procedure-arguments-in-rexx/
Но этот метод работает только для передачи массивов функциям внутри той же программы.