Имеется модуль-справочник. Например, телефонная книга - вводишь номер, получаешь фамилию.
Проблема в том, что записей в этом справочнике овердофига, на данный момент сотни тысяч. Файл с "голыми" данными в формате CSV сейчас весит 10 мегабайт.
И вот вопрос - как толковее хранить эти данные в модуле?
- Положить CSV в DATA?
- Сериализовать в JSON или Storable и положить туда же?
- Описать как структуру прямо в коде?
- Записать в файл типа DB или SQLite и хранить отдельно?
- Еще что-то?
Какой бестпрактик?
Посмотрел на CPAN'е то, что пришло в голову - как DateTime хранит список таймзон. Он их просто как структуру в коде описывает. Но там этих зон - тьфу, по сравнению с моим справочником.
Есть, конечно, вариант - написать модуль в виде интерфейса к справочнику, а сам файл справочника загружать отдельно. Но как-то это не кузяво - загрузил модуль с CPAN'а, а потом еще догадайся, что надо справочник загрузить...
Хотелось бы впихнуть справочник прямо в дистрибутив.
_italic_
→ italic
**bold**
→ bold
[PP](http://pragmaticperl.com)
→
<http://pragmaticperl.com>
→
module:Plack
→
release:URI
→
author:VTI
→
`my $foo = 'bar'`
```
my $multi;
$line;
```