Решил выложить в виде модуля пару функций в 20 строк, которые давным-давно таскаю по всем своим проектам и которые сильно упрощают написание больших проектов на Perl. Вот он: https://github.com/johnlepikhin/p5-Syntax-NamedArgs
Функции делают простые вещи:
- Гарантируют, что функцию позвали с хэш-аргументами;
- Проверяют, что такие-то аргументы переданы;
- Позволяют задать значение по умолчанию;
- Валят читаемую ошибку, если где-то вглуби стека оказалось, что аргумента нехватает.
В совокупности это позволяет писать довольно замысловатые конструкции с легкой организацией глубокой передачи значений.
Минимальные примеры есть в README.