URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6731
[ Назад ]

Исходное сообщение
"require в модулях"

Отправлено liks , 06-Сен-07 17:28 
Добрый день!

Было объявление переменных в самописном .pm модуле:
our $user = "user";
our $pass = "pass";

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

require "/root/credentials";

не работает. Пишет:

Global symbol "$user" requires explicit package name.

В чем может быть проблема?

Заранее огромное спасибо.


Содержание

Сообщения в этом обсуждении
"require в модулях"
Отправлено anonymous , 06-Сен-07 19:52 
use lib "/root/packages/";
use mypackage;

это если файл /root/packages/mypackage.pm


"require в модулях"
Отправлено anonymous , 06-Сен-07 21:36 
>use lib "/root/packages/";
>use mypackage;
>
>это если файл /root/packages/mypackage.pm

Ну и конечно же нужно наследоваться от Exporter


"require в модулях"
Отправлено andy , 07-Сен-07 05:39 
>Global symbol "$user" requires explicit package name.
>В чем может быть проблема?

то, что переменные вынесены в отдельный файл не освобождает вас от их объявления.

>cat Mod.pm

package Mod;
use strict;
use warnings;
use vars qw( $u $p );  ##### <<<<<<<<
require 'vars.pl';
sub a { print "u=[$u] p=[$p]\n" }
1;

>cat vars.pl

$u=1;
$p=2;
1;