|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Eric Pozharski 2:463/3141.314 17 Sep 2005 21:05:52 To : Valery Shishkov Subject : Разобрать конфигурационный файл -------------------------------------------------------------------------------- 16 Sep 05 15:08, Valery Shishkov wrote to All: VS> Чтой-то я совсем запутался -- в perl'е есть средства VS> (хотя бы в виде модулей со CPAN'а), которые позволяли бы VS> разбирать конфигурационный файл программы? Формат может VS> быть вполне тривиальным, вроде [***SKIP***] В Sarge -- libappconfig-perl, версия 1.56 ----- foo.appconfig begins ----- AppConfig is a bundle of Perl5 modules for reading configuration files and parsing command line arguments. Note that writing configuration files is not supported at this time. . AppConfig supports a relaxed configuration file syntax with support for flags (booleans), single and multivalue (lists or hashes) items. A defined default and validation routine or regex can be defined for each option. . Environment variable, file variable and tilde (~) are supported and may be applied to selected configuration options. For long blocks of text you can also use Perl HEREDOC syntax. Additionally there is also a mechanism to utilise all these same features via a CGI. ----- foo.appconfig ends ----- VS> Или поделитесь кто-нибудь собственной наработкой, pls! VS> Время уже *ОЧЕHЬ* сильно поджимает, и заморачиваться еще VS> и разбором конфига -- явные вешалки! Поделюсь опытом общения. Это не module, а object class; поэтому (сам понимаешь) (но по сравнению с Mail::* оно летает!). Если разобраться как оно работает, то получается гломурненько. Мне не хватило в нем возможности запихивать опции в Hash-of-Arrays. Поэтому закончилось тем, что я в нем использовал только парсер (отматывая назад, а нафиг он мне тогда вообще был нужен? но что сделано, то сделано); на каждую зарегестрированную переменную в конфиге натравливался ACTION, которые были собраны в Hash-of-Subs; а они просто запихивали в %config так как мне было нужно. Если же с этим не заморачиваться, то там есть такая штука: %appconfig->get(foo); %appconfig->foo(); или %appconfig->set(foo, 'bar'); %appconfig->foo('bar'); * p.s. * p.p.s. --- Msged/LNX 6.0.2 * Origin: Place Smiles: [ ] (Disabled) (2:463/3141.314) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/4554432c8566.html, оценка из 5, голосов 10
|