The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"экспорт переменных в модули perl"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"экспорт переменных в модули perl" 
Сообщение от mthawk emailИскать по авторуВ закладки(ok) on 22-Июн-05, 11:39  (MSK)
Доброго времени суток.
Возникла проблема.
При подключении модуля к основной программе не возникает проблем при использовании обьявляемых им (модулем) переменных и подпрограмм.
Но передать в модуль некоторые переменные основной программы не получается.
Точнее даже не передать а обеспечить доснуп к некоторым переменным.
Как это можно выполнить.
Заранее спасибо.
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "экспорт переменных в модули perl" 
Сообщение от chip emailИскать по авторуВ закладки(??) on 22-Июн-05, 23:21  (MSK)
>Доброго времени суток.
>Возникла проблема.
>При подключении модуля к основной программе не возникает проблем при использовании обьявляемых
>им (модулем) переменных и подпрограмм.

Своеобразная форма изложения.

>Но передать в модуль некоторые переменные основной программы не получается.
>Точнее даже не передать а обеспечить доснуп к некоторым переменным.
>Как это можно выполнить.

передавай в качестве параметров методам.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "экспорт переменных в модули perl" 
Сообщение от mthawk emailИскать по авторуВ закладки(ok) on 23-Июн-05, 12:42  (MSK)
>>Доброго времени суток.
>>Возникла проблема.
>>При подключении модуля к основной программе не возникает проблем при использовании обьявляемых
>>им (модулем) переменных и подпрограмм.
>
>Своеобразная форма изложения.
>
>>Но передать в модуль некоторые переменные основной программы не получается.
>>Точнее даже не передать а обеспечить доснуп к некоторым переменным.
>>Как это можно выполнить.
>
>передавай в качестве параметров методам.
К сожалению кол-во "общих" переменных слишком велико, что бы передавать его параметрами.

Уже нашел решение.
package NNNNN;
*var_from_main=*main::var_from_main
..........
..........
sub dddd {
$var_from_main #имеем доступ
}
1;

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "экспорт переменных в модули perl" 
Сообщение от chip emailИскать по авторуВ закладки(??) on 23-Июн-05, 16:11  (MSK)
>К сожалению кол-во "общих" переменных слишком велико, что бы передавать его параметрами.

передавать в качестве указателя на хеш коструктору new(). При то что они "общие".

>Уже нашел решение.

это не решение, это костыль.

>package NNNNN;
>*var_from_main=*main::var_from_main
>..........
>..........
>sub dddd {
>$var_from_main #имеем доступ
>}
>1;

пример, неверной декомпозиции на модули.

ps: ничего личного, но если требуется подобный изврат, то явно проблемы в архитектуре приложения. Не сочтите за оскорбление.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "экспорт переменных в модули perl" 
Сообщение от mthawk emailИскать по авторуВ закладки(ok) on 29-Июн-05, 10:29  (MSK)
>>К сожалению кол-во "общих" переменных слишком велико, что бы передавать его параметрами.
>
>передавать в качестве указателя на хеш коструктору new(). При то что они
>"общие".
>
>>Уже нашел решение.
>
>это не решение, это костыль.
>
>>package NNNNN;
>>*var_from_main=*main::var_from_main
>>..........
>>..........
>>sub dddd {
>>$var_from_main #имеем доступ
>>}
>>1;
>
>пример, неверной декомпозиции на модули.
>
>ps: ничего личного, но если требуется подобный изврат, то явно проблемы в
>архитектуре приложения. Не сочтите за оскорбление.

Не буду отрицать, приложение писалось мною относительно давно, когда работу с модулями я еще не постиг в необходимой мере.
Посему писал как мог. А теперь приходится перестраивать дом, не снося фундамент.
Если можно - буду очень признателен за ссылки на источники по правильному написанию модулей и вообще основам "ООП" на перл

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "экспорт переменных в модули perl" 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 29-Июн-05, 11:38  (MSK)
>Если можно - буду очень признателен за ссылки на источники по правильному
>написанию модулей и вообще основам "ООП" на перл

Начать стоит с находящихся под рукой:
           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

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "экспорт переменных в модули perl" 
Сообщение от PoizOn emailИскать по авторуВ закладки(ok) on 29-Июн-05, 16:46  (MSK)
>>Если можно - буду очень признателен за ссылки на источники по правильному
>>написанию модулей и вообще основам "ООП" на перл
>
>Начать стоит с находящихся под рукой:
>           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__
Так что в вашем случае (перестройки дома) возможно лучше обойтись без ОО.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру