Обычно при наличии цикличеÑкой завиÑимоÑти еÑÑ‚ÑŒ неÑколько ÑпоÑобов её вылечить.<div><br></div><div>Самый раÑпроÑтранённый - разделить модуль на два, один Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»Ð¾Ð¼ без завиÑимоÑти, а другой - оной завиÑимоÑтью.</div><div>
<br></div><div>КÑтати, Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ñ‚Ñ‹ так и напрашиваетÑÑ Ð´Ð²Ð° ÑлоÑ, ÑиÑтемный (реализациÑ) и ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (Ñ Ð»Ð¾Ð³Ð³Ð¸Ð½Ð³Ð¾Ð¼).</div><div><br></div><div>Далее,</div><div>КÑтати, в мире Ruby обычно информацию о подключении держат отдельно, в файле database.yml.</div>
<div><br></div><div>СоответÑтвенно, проÑто</div><div>use YAML qw( Load );<br><br></div><div>my $connection_parameters = Load("${APP_ROOT}/config/database.yml");</div><div><br></div><div><br><div class="gmail_quote">
19 марта 2010 г. 11:50 пользователь Roman V. Nikolaev <span dir="ltr"><<a href="mailto:rshadow@rambler.ru">rshadow@rambler.ru</a>></span> напиÑал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Привет. Помогите оÑилить Ñабж. ЕÑÑ‚ÑŒ неÑколько конкретных примеров и не<br>
понÑтно как нормально Ñделать:<br>
<br>
Ðапример еÑÑ‚ÑŒ модуль My::Config который берет данные о Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº БД<br>
из txt файла, а так же через него получают некоторые конфигурационные<br>
параметры из БД (Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ DBI). Таким образом получаетÑÑ Ð·Ð°Ð²Ð¸ÑимоÑÑ‚ÑŒ<br>
что DBI нужен модуль конфига чтобы получить данные о подключении, а<br>
конфигу нужен DBI чтобы далее работать Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ хранÑщимиÑÑ Ð² БД.<br>
<br>
Или вот второй пример: модулю отÑылки почты надо веÑти логи, и он<br>
подключает ÑоответÑтвующий модуль. И наоборот, модулю работы Ñ Ð»Ð¾Ð³Ð°Ð¼Ð¸<br>
надо, например в Ñлучае ошибки, отоÑлать пиÑьмо.<br>
<br>
Пока что вижу решение в разделение Ð¼Ð¾Ð´ÑƒÐ»Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³Ð° на два модулÑ. Один<br>
который проÑто будет Ñчитывать файл конфига и отдавать DBI. Другой уже<br>
Ñо вÑем оÑтальными конфигурационными параметрами и работой Ñ DBI.<br>
<br>
По второму примеру даже не знаю ... везде как-то размазывать<br>
функциональноÑÑ‚ÑŒ по разным модулÑм? Они ведь бывают довольно Ñложные и<br>
не хотелоÑÑŒ бы дублировать кучу кода.<br>
<br>
P.S. ÐадеюÑÑŒ понÑтно объÑÑнил.<br>
<font color="#888888"><br>
--<br>
<br>
    Roman V. Nikolaev<br>
<br>
mail: Â Â Â Â <a href="mailto:rshadow@rambler.ru">rshadow@rambler.ru</a><br>
icq: Â Â Â Â 198-364-657<br>
jabber: Â Â Â <a href="mailto:rshadow@jabber.org">rshadow@jabber.org</a><br>
site: Â Â Â Â <a href="http://www.rshadow.ru" target="_blank">http://www.rshadow.ru</a><br>
<br>
</font><br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br></div>