Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение pm-модулей 
:(
    Опции темы
webser
Дата 10.3.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.12.2007

Репутация: нет
Всего: нет



Я недавно начал программировать - учусь "на ходу".
Суть вопроса проста - подключение 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) изменить? Буду Вам очень признателен за указание на ошибку - чувствую, что какая-то мелочь

Заранее спасибо
PM MAIL   Вверх
sir_nuf_nuf
Дата 10.3.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



а) во-первых. Прочитайте про модули и механизм экспорта - 30 минут - решает 70 % проблем
http://perldoc.perl.org/perlmod.html

б) решение вашей проблемы ( нет, вы все таки прочитайте про модули, прежде чем копипастить =))
Код

package wwwvars;

use base qw(Exporter);   #это необходимо что-бы модуль мог экспортировать символы

our @EXPORT_OK = qw(%config); #а здесь мы говорим, что по требованию мы будем экспортировать %config

$config{'srv_root'} = "/home/clients/имя сервера/public_html";

1;


вот. если вам не охото все вермя писать 
use wwwvars qw(%config);

то можно в написать за место
@EXPORT_OK =...
@EXPORT=...

Однако, по - моему это очень не правильно что модулт зависят от абсолютного пути по которому они лежат.. зачем вам это?

может быть можно решить проблему используя другие средства, например use Cwd ?


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
webser
Дата 10.3.2008, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.12.2007

Репутация: нет
Всего: нет



Я разбирался с готовыми кодами и чт-то упустил. Там было ::::

 ##################################################
#########################
# 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; 

А я этот блок по неразумению "похерил"..... smile 

Сейчас поставил так, как выше - все заработало....
Спасибо за совет.... smile 


PM MAIL   Вверх
KSURi
Дата 10.3.2008, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Цитата(webser @  10.3.2008,  17:44 Найти цитируемый пост)
@EXPORT = qw(@EXPORT_OK);

@EXPORT_OK = qw(%config);

А не проще %config сразу в @EXPORT? А то какое-то извращение получается...


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
webser
Дата 10.3.2008, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.12.2007

Репутация: нет
Всего: нет



Т.е вот так ? :::::


Я разбирался с готовыми кодами и чт-то упустил. Там было ::::

 ##################################################
#########################
# 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; 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.