![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| n4n0bit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
Кто как читает конфиги блочного вида? ps: хотелосьбы обайтись без CPAN. Это сообщение отредактировал(а) n4n0bit - 11.11.2008, 15:06 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| n4n0bit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
Смысл - обайти избытачность кода!
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
n4n0bit, лучше это время потратить на чтение документации по поводу переменных $a и $b.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| n4n0bit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
а что в них не так?
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
фрагмент из perlvar
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| n4n0bit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
Я не использую sort в файле с этими переменными
|
|||
|
||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
Я как и ты не люблю избыточность. Тоже столкнулся с этой проблемой. Написал модуль как раз для этого.
Он сохраняет и читает хэш из файла. Сохраняет хеш любой сложности со всеми значениями, ссылками, вложенными массивами и хэшами. И потом восстанавливает его в том же виде. Пока багов не наблюдал. Если интересно могу выложить. Написан на чистом перл без избыточности). Это сообщение отредактировал(а) tolkien - 11.11.2008, 16:36 |
|||
|
||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
||||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
test.conf:
test { aa = bb cc = dd } результат: Use of uninitialized value $1 in hash element at Conf.pm line 56, <F1> line 2. id | name | age | phone Use of uninitialized value in print at sample.pl line 28. Use of uninitialized value in print at sample.pl line 28. Use of uninitialized value in print at sample.pl line 29. | | | Use of uninitialized value in print at sample.pl line 28. Use of uninitialized value in print at sample.pl line 28. Use of uninitialized value in print at sample.pl line 29. test | | | |
|||
|
||||
| tolkien |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
[b]arto[\b]
Спс за проявленный интерес. Видимо мне надо немного больше рассказать тогда про синтаксис формата с которым работает Сonf.pm. Вот если бы вы выполнили файл идущий с модулем в архиве (sample.pl). А потом открыли бы файл personal.dat. Вы бы увидели следующую структуру
Теперь по вашему конфигу
Т.е вы хотели бы чтобы после загрузки данного конфига у вас в программе имелся бы хэш. Такого вида %config ( test => {aa => 'bb', cc => 'dd'} ); Тогда конфиг должен быть таким
Структура файла строгая. -строки начинающиеся на # игнорируются -игнорируются пробелы, табуляция в начале строки -игнорируются пустые строки -key=value после ключа (key) не должно быть пробелов, ни табуляции только делитель(=) после него значение(value) Про вложенные структуры key { key=value ... } - ссылка на хэш key [ key=value ... ] - ccылка на массив key / $value - ссылка на скаляр Делитель можно менять. Функции save и load имеют параметр DIVIDER который по умолчанию равен =. Даже убрать. Conf::load(FILE => './test.conf', CONFIG => \%conf, DIVIDER =>'') or die $!; Добавлено через 3 минуты и 26 секунд Еще добавлю. Лучше создавать конфиг из желаемой структуры хеша. Ведь в программе всеравно будете работать с хешом. Т.е сначала пишите в программе %сonfig (...) потом сохраняете его в файл через Conf::save. Дальше можно не боясь его редактировать ). |
||||||||
|
|||||||||
| n4n0bit |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
tolkien спс за внимание.
Вот конфиг который будет использовать редиректор для SQUID-a . С поддержкой инклуда групп компанентов (форматы файлов и тд) а так же с отрицанием элементов в группах (!mp3) для того что бы не править группы компонентов при индивидуальных правилах
А вот эксперементальный код без проверок синтаксиса который забивает данные в ХЕШ но можно при желании сразу и в MySQL.
Результат дампа:
Это сообщение отредактировал(а) n4n0bit - 13.11.2008, 14:41 |
||||||
|
|||||||
| n4n0bit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.6.2008 Репутация: нет Всего: 1 |
Есть ли смысл в строках 103 105 107 109 ???
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |