Каков наилучший способ сделать простой конфигурационный файл Perl? - PullRequest
1 голос
/ 12 декабря 2010

Я пытаюсь создать простой конфигурационный файл для моего сценария Perl, я изначально собирался использовать Config :: INIPlus , но я не думаю, что он будет работать. Файл конфигурации не должен быть чем-то особенным. Мне просто нужно уметь читать и писать. Я хотел бы использовать модуль для этого.

Обновление:

Причина, по которой я не думаю, что Config :: INIPlus будет работать для меня, может показаться глупой, но я хочу, чтобы файл конфигурации поддерживал определенный порядок значений. Проблема, с которой я продолжаю сталкиваться, состоит в том, что модуль Config :: INIPlus настаивает на стирании всего файла, а затем на повторной вставке всех значений в алфавитном порядке, независимо от того, к какой теме они относятся, поэтому он портит порядок, который я хотел бы сохранить в конфигурации. файл заказан. Также он стирает мои пустые переменные, которые я оставил для заполнителей.

Я проверил свою идею, используя реестр в качестве хранилища настроек, и это было здорово! Проблема в том, что я пытаюсь сделать свой сценарий независимым от платформы, главным образом для Windows и Linux, не столько для Mac, сколько для меня.

Может быть, мне просто нужно переосмыслить свой взгляд на файл конфигурации, может быть, меня просят о том, что нельзя сделать, пока я не пойму больше тонкостей perl.

Ответы [ 4 ]

7 голосов
/ 12 декабря 2010

Если вы ищете что-то простое, я бы попробовал Config :: Tiny или Config-INI .

Что мне не нравится в Config :: Simple , так это то, что он пытается поддерживать слишком много различных форматов конфигурации.

Ни YAML, ни JSON, ни XML не являются тем, что я бы назвал "простым" файлом конфигурации, хотя они подходят, если у вас более сложные требования. Я бы избегал XML, если это вообще возможно; в $WORK я написал переводчик конфигурационных файлов YAML-XML, чтобы я мог написать свою конфигурацию в YAML вместо ручного редактирования файлов конфигурации XML.

Обновление для обновленного вопроса: Конечно, возможно написать модуль Config, который сохраняет порядок существующих строк, но я не знаю ни одной существующей, которая делает это. Вам, вероятно, придется написать свое или нанять кого-нибудь, чтобы написать это.

1 голос
/ 12 декабря 2010

Несмотря на то, что мне нравится Config :: Simple , и это было очень полезно для меня в нескольких проектах, мой любимый AppConfig .

1 голос
/ 12 декабря 2010

А как насчет Config::Simple?Также есть несколько связанных модулей.

0 голосов
/ 12 декабря 2010

YAML?JSON?XML?Есть много возможностей, каждая с модулем Perl.Есть также простой старый текст, но если вам нужно использовать модуль, просто выберите стандарт.

...