- экспорт переменных в модули perl,
chip, 23:21 , 22-Июн-05 (1)>Доброго времени суток. >Возникла проблема. >При подключении модуля к основной программе не возникает проблем при использовании обьявляемых >им (модулем) переменных и подпрограмм. Своеобразная форма изложения. >Но передать в модуль некоторые переменные основной программы не получается. >Точнее даже не передать а обеспечить доснуп к некоторым переменным. >Как это можно выполнить. передавай в качестве параметров методам.
- экспорт переменных в модули perl,
mthawk, 12:42 , 23-Июн-05 (2)>>Доброго времени суток. >>Возникла проблема. >>При подключении модуля к основной программе не возникает проблем при использовании обьявляемых >>им (модулем) переменных и подпрограмм. > >Своеобразная форма изложения. > >>Но передать в модуль некоторые переменные основной программы не получается. >>Точнее даже не передать а обеспечить доснуп к некоторым переменным. >>Как это можно выполнить. > >передавай в качестве параметров методам. К сожалению кол-во "общих" переменных слишком велико, что бы передавать его параметрами.Уже нашел решение. package NNNNN; *var_from_main=*main::var_from_main .......... .......... sub dddd { $var_from_main #имеем доступ } 1;
- экспорт переменных в модули perl,
chip, 16:11 , 23-Июн-05 (3)>К сожалению кол-во "общих" переменных слишком велико, что бы передавать его параметрами. передавать в качестве указателя на хеш коструктору new(). При то что они "общие". >Уже нашел решение. это не решение, это костыль. >package NNNNN; >*var_from_main=*main::var_from_main >.......... >.......... >sub dddd { >$var_from_main #имеем доступ >} >1; пример, неверной декомпозиции на модули. ps: ничего личного, но если требуется подобный изврат, то явно проблемы в архитектуре приложения. Не сочтите за оскорбление.
- экспорт переменных в модули perl,
mthawk, 10:29 , 29-Июн-05 (4)>>К сожалению кол-во "общих" переменных слишком велико, что бы передавать его параметрами. > >передавать в качестве указателя на хеш коструктору new(). При то что они >"общие". > >>Уже нашел решение. > >это не решение, это костыль. > >>package NNNNN; >>*var_from_main=*main::var_from_main >>.......... >>.......... >>sub dddd { >>$var_from_main #имеем доступ >>} >>1; > >пример, неверной декомпозиции на модули. > >ps: ничего личного, но если требуется подобный изврат, то явно проблемы в >архитектуре приложения. Не сочтите за оскорбление. Не буду отрицать, приложение писалось мною относительно давно, когда работу с модулями я еще не постиг в необходимой мере. Посему писал как мог. А теперь приходится перестраивать дом, не снося фундамент. Если можно - буду очень признателен за ссылки на источники по правильному написанию модулей и вообще основам "ООП" на перл
- экспорт переменных в модули perl,
chip, 11:38 , 29-Июн-05 (5)>Если можно - буду очень признателен за ссылки на источники по правильному >написанию модулей и вообще основам "ООП" на перл Начать стоит с находящихся под рукой: perlmod Perl modules: how they work perlmodlib Perl modules: how to write and use perlmodstyle Perl modules: how to write modules with style perlboot Perl OO tutorial for beginners perltoot Perl OO tutorial, part 1 perltooc Perl OO tutorial, part 2 и perlstyle
- экспорт переменных в модули perl,
PoizOn, 16:46 , 29-Июн-05 (6)>>Если можно - буду очень признателен за ссылки на источники по правильному >>написанию модулей и вообще основам "ООП" на перл > >Начать стоит с находящихся под рукой: > perlmod > > Perl modules: how they work > perlmodlib > Perl modules: >how to write and use > perlmodstyle > Perl modules: how to >write modules with style > > perlboot > >Perl OO tutorial for beginners > perltoot > >Perl OO tutorial, part 1 > perltooc > >Perl OO tutorial, part 2 > >и perlstyle Писал совсем недавно программу, разбитую на модули и подключаемые через use, так как в модулях хранились глобальные хэши и пара функций, заворачивать все это в ОО модель было просто лень (и с экспортом тоже не хотелось возится). Я работал так:
myscrip.pl ------------------ #!/usr/bin/perl use DATA;# мой модуль DATA::Prepare(args);# вызов функции из модуля. print %DATA::RUTS;# вывод глобальной переменной определенной в модуле. и т.п ----------------- Модуль DATA.pm был примерно такой: --------- package DATA; %DATA::RUTS=(); sub Prepare { } # .... 1; __END__ Так что в вашем случае (перестройки дома) возможно лучше обойтись без ОО.
|