При чем тут усложнение?
Константин Моршнев 17.02.2003 11:29
Нормально - это когда функция возвращает один результат.
Для ситуаций с более чем одним результом существуют разные страндартные решение -
1. Возвращать int со статусом, остальные результаты возвращать через изменение параметров - в парсере (как и во многих языках) нельзя явно передавать параметры по ссылке, но по ссылке всегда передаются "сложные" типы, которые и можно изменять.
2. Возвращать сложный тип (объект, хеш). Хеш в парсере возвращать удобно:
было $a[$r1] ... $f[$r5], стало $result[ $.a[$r1] ... $.f[$r5] ]
3. ...
Но вообще конкретно к парсеру это имеет отдаленное отношение. :) Хотя в принципе в парсере (всвязи с тем, что он интерпретатор)
возможностей несколько больше: во-первых удобнее передавать код (обычно надо передавать ссылку на метод) и можно получить доступ к локальным переменным вызвавшего процедуру (тот самый $caller).