| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Подключение pm-модулей |
| Автор: webser 10.3.2008, 12:19 |
| Я недавно начал программировать - учусь "на ходу". Суть вопроса проста - подключение pm-модулей. У меня есть набор perl-программ, которые я отлаживаю на локальном сервере. А потом мне надо перекинуть их на внешний. Что-бы не менять пути в модулях - я создал файл wwwvars.pm, где определил пути :::: #!/usr/bin/perl package wwwvars; ################################################## ######################### # User defined variables ################################################## ######################### # Server root directory $config{'srv_root'} = "V:/имя сервера/www"; # $config{'srv_root'} = "/home/clients/имя сервера/public_html"; 1; и в перловых программах подключаю его ::: #!/usr/bin/perl use wwwvars qw(%config); print "Content-type: text/html\n\n"; $path = $config{'srv_root'}; print "путь ::::: ",$path; НО НИЧЕГО НЕ ПОДКЛЮЧАЕТСЯ и ОШИБКУ НЕ ВЫДАЕТ. Может чего в настройках Apache (файле http.conf) изменить? Буду Вам очень признателен за указание на ошибку - чувствую, что какая-то мелочь Заранее спасибо |
| Автор: sir_nuf_nuf 10.3.2008, 13:40 | ||
| а) во-первых. Прочитайте про модули и механизм экспорта - 30 минут - решает 70 % проблем http://perldoc.perl.org/perlmod.html б) решение вашей проблемы ( нет, вы все таки прочитайте про модули, прежде чем копипастить =))
вот. если вам не охото все вермя писать use wwwvars qw(%config); то можно в написать за место @EXPORT_OK =... @EXPORT=... Однако, по - моему это очень не правильно что модулт зависят от абсолютного пути по которому они лежат.. зачем вам это? может быть можно решить проблему используя другие средства, например use Cwd ? |
| Автор: webser 10.3.2008, 17:44 |
| Я разбирался с готовыми кодами и чт-то упустил. Там было :::: ################################################## ######################### # User defined variables ################################################## ######################### package wwwvars; require Exporter; @ISA = qw (Exporter); @EXPORT = qw(@EXPORT_OK); @EXPORT_OK = qw(%config); use vars qw(%config); use strict; # Server root directory $config{'srv_root'} = "V:/имя сервера/www"; # $config{'srv_root'} = "/home/clients/имя сервера/public_html"; 1; А я этот блок по неразумению "похерил"..... Сейчас поставил так, как выше - все заработало.... Спасибо за совет.... |
| Автор: KSURi 10.3.2008, 19:25 |
А не проще %config сразу в @EXPORT? А то какое-то извращение получается... |
| Автор: webser 10.3.2008, 19:30 |
| Т.е вот так ? ::::: Я разбирался с готовыми кодами и чт-то упустил. Там было :::: ################################################## ######################### # User defined variables ################################################## ######################### package wwwvars; require Exporter; @ISA = qw (Exporter); @EXPORT = qw(%config); use vars qw(%config); use strict; # Server root directory $config{'srv_root'} = "V:/имя сервера/www"; # $config{'srv_root'} = "/home/clients/имя сервера/public_html"; 1; |