The OpenNET Project / Index page

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

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

"вопрос по perl (+)"
Сообщение от jr emailИскать по авторуВ закладки on 17-Ноя-02, 00:10  (MSK)
как в perl включить в основную программу код из другого файла (подобно #include в C)?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "RE: вопрос по perl (+)"
Сообщение от Dima emailИскать по авторуВ закладки on 17-Ноя-02, 01:08  (MSK)
use YourModule;
push (@INC, ("/patth/to/module"));

далее рисуешь  файл YouModule.pm
в котором четко описываешь все, что хочешь экспортирвать для внешних  программ и работаешь как со стандартными функциями перла.

==========
package YourModuke

BEGIN {                                                                        
        use Exporter();                                                        
        @ISA = 'Exporter';                                                      
        @EXPORT =                                                              
('&Mail_send');
}

sub Mail_Send {
   some Code Here;
}

return1;
end{}

Если ты конечно это имел в виду.
Либо можно и это попробовать
$seed = 0;                                                                      
open(F,"$attern");                                                        
while (<F>){                                                                    
        $mytext[$seed++] = eval qq("$_");                                      
        }                                                                      
print @mytext;                                                                  
close(F);

Включает простой текст, там где надо можешь переменные ставить,
автоматом будет ставить значения..

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: вопрос по perl (+)"
Сообщение от jr emailИскать по авторуВ закладки on 17-Ноя-02, 08:32  (MSK)
>use YourModule;
>push (@INC, ("/patth/to/module"));
>
>далее рисуешь  файл YouModule.pm
>в котором четко описываешь все, что хочешь экспортирвать для внешних  программ
>и работаешь как со стандартными функциями перла.
>
>==========
>package YourModuke
>
>BEGIN {
>        use Exporter();
>        @ISA = 'Exporter';
>        @EXPORT =
>('&Mail_send');
>}
>
>sub Mail_Send {
>   some Code Here;
>}

спасибо, то что нужно... не знал просто, что в перле это называется "модулями", так бы в хелпах все нашел...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: вопрос по perl (+)"
Сообщение от jr emailИскать по авторуВ закладки on 17-Ноя-02, 12:11  (MSK)
Dima, опять трабл... путь не добавляется в @INC... при запуске скрипта пишет, что не может найти MyModule.pm по указанным путям... модуль MyModule.pm лежит в /etc/mydir... как его в @INC добавить?

Вот чать кода:

----------------
#!/usr/bin/perl

push( @INC, "/etc/mydir" );

use DBI;
use strict;
use MyModule;

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: вопрос по perl (+)"
Сообщение от jr emailИскать по авторуВ закладки on 17-Ноя-02, 12:27  (MSK)
>Dima, опять трабл... путь не добавляется в @INC... при запуске скрипта пишет,
>что не может найти MyModule.pm по указанным путям... модуль MyModule.pm лежит
>в /etc/mydir... как его в @INC добавить?

разобрался, нужно push( @INC, "/etc/mydir" ) в BEGIN записывать...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: вопрос по perl (+)"
Сообщение от Dima emailИскать по авторуВ закладки on 17-Ноя-02, 16:01  (MSK)
В  BEGIN не совсем правильно.
Если тебе понадобится модуль  полжить в хом директорю, а запускать прогу из.
/usr/local/bin/
то она будет ругаться что не видит твоего модуля, а так явно указываешь где он может еще быть
почему у тебя путь не добавился не знаю, надо может внимательней посмотреть как верно все записать.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: вопрос по perl (+)"
Сообщение от jr emailИскать по авторуВ закладки on 18-Ноя-02, 09:55  (MSK)
>В  BEGIN не совсем правильно.
>Если тебе понадобится модуль  полжить в хом директорю, а запускать прогу
>из.
>/usr/local/bin/
>то она будет ругаться что не видит твоего модуля а так явно
>указываешь где он может еще быть

что то не понял я... почему она не будет находиить модуль при запуске из /usr/local/bin/ если в @INC будет явно указано где искать?

>почему у тебя путь не добавился не знаю, надо может внимательней посмотреть
>как верно все записать.

ну насколько я понял, оператор use обрабатывается раньше других команд в не зависимости где он находится в теле скрипта, поэтому просто добавлять в @INC новый путь не получится, а если прописать добавление пути в процедуре BENIN, то use уже будет знать, где искать модуль... или я не прав?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: вопрос по perl (+)"
Сообщение от Dima emailИскать по авторуВ закладки on 18-Ноя-02, 18:16  (MSK)
можно еще воспользоваться оператором
require
этот отрабатывает на стадии выполнения программы.
Возможно мы не поняли друг друга.
для меня BEGIN находится в  файле  модуля
и тебе Модуль как раз найти необходимо.
И если нет за ранее пути к этому модулю, то и найти его не получится.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: вопрос по perl (+)"
Сообщение от jr emailИскать по авторуВ закладки on 18-Ноя-02, 18:40  (MSK)
>Возможно мы не поняли друг друга.

да действительно, не поняли...

>для меня BEGIN находится в  файле  модуля
>и тебе Модуль как раз найти необходимо.
>И если нет за ранее пути к этому модулю, то и найти
>его не получится.

BEGIN с включением @INC вставлял в файл скрипта, а в модуле опаратор этот тоже есть, только с командами для экспорта... в общем у меня все работает

>можно еще воспользоваться оператором
>require
>этот отрабатывает на стадии выполнения программы.

что то я не нашел его описание... но что-то мне подсказывает, что он просто добавляет часть кода из другого файла (это по аналогии с PHP :), а не подсоединяет как модуль... не объяснишь?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "RE: вопрос по perl (+)"
Сообщение от Dima emailИскать по авторуВ закладки on 18-Ноя-02, 19:46  (MSK)
Ну да , что то типа этого :)
http://avatar.dux.ru/BOOK/perl/cookbook/index.htm
Вот посмотри тут
у меня книга  есть только на русском, вот от туда я тебе и вытащил про required
а то что писал ранее, делал уже сто лет назад, в  книге похожее есть.

Теперь понятно про BEGIN, :)
я его не использовал в файле скрипта.
но  у меня отрабатывало все нормаьлно,
Посмотрю внимательней.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "RE: вопрос по perl (+)"
Сообщение от jr emailИскать по авторуВ закладки on 19-Ноя-02, 09:23  (MSK)
>Ну да , что то типа этого :)
>http://avatar.dux.ru/BOOK/perl/cookbook/index.htm
>Вот посмотри тут

спасиб, очень хорошая книжка

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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