Товарищи! Нет ли возможности какой-то парсить JSON и YAML-конфиги в хеш, ключами которого являются конкатенированные последовательности наподобие JSON.Path?
Например,
{"data": {"creds": {"login": "jaja", "password": "nein"}}}
мог бы распарситься в хеш:
{
'data.creds.login' => 'jaja',
'data.creds.password' => 'nein'
}
Какие проблемы это решает?
1) Повышает быстродействие: доступ к $config{'data'}{'creds'}{'login'} в общем случае медленнее доступа к $config{'data.creds.login'}
2) Обеспечивает простой доступ к элементу по описанию пути к нему: используем реальный JSON.Path И не вынуждены рекурсивно обходить хеш в хеше в массиве в хеше для поиска какого-нибудь data.users.0.creds.password
3) Позволяет легко делать и загружать дампы подобных структур в виде набора пар ключ-значение
Какие проблемы создаёт:
1) Накладывает ограничения на имена полей: не позволяет использовать разделитель внутри имён полей. Например, нельзя назвать поле "
foo.bar", если разделитель - точка.
2) Если много вложенных массивов и мало хешей - невыгодно с т.з. производительности
2) Длинные ключи в хеше