Inc_Value()
Служебная функция, написанная скорее из эстетических чувств. get_value() есть, set_value() тоже. Часто полем ассоциативного массива являются какие-либо счетчики. Приходится сначала получать из массива значение, увеличивать его, потом записывать назад. Текст портфеля распухает. Для уменьшения количества кликов по клавиатуре сохранил эту функцию.
' Увеличение значения ассоциативного массива на требуемую величину
FUNC Inc_Value(result,av_key,av_value)
result = set_value(result,av_key,get_value(result,av_key) + av_value)
END FUNC
Чтобы не генерировать вызов функции (и новые переменные, количество которых в QPILE ограничено), можно воспользоваться inline-вариантом для макропроцессора M4:
define(`Inc_Value',`set_value($1,$2,get_value($1,$2) + ifelse($3,,1,$3))')
Приятные мелочи - если использовать поле ассоциативного массива в качестве счетчика, инициализировать его нулем не нужно - оно изначально ему равно. Плюс к тому в варианте с использованием M4 последний параметр указывать необязательно. Если он пропущен, то по умолчанию равен 1.