Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Область видимости у require / 3 сообщений из 3, страница 1 из 1
04.02.2014, 14:41
    #38548674
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Область видимости у require
Разбираюсь с системой, к которой подключаются внешние модули (получение данных из внешних источников).
Поставщик системы предоставляет модуль-заглушку, на основе которой можно сделать получение данных из своей системы.
Модуль разделен на основной скрипт и конфиг, в общем случае модули выглядят так:

модуль.pl
Код: php
1.
2.
3.
$ver="модуль v.1.0";
require("модуль.tmp");
...



модуль.tmp
Код: php
1.
2.
3.
4.
$cfgvar1 = '123';
$cfgvar2 = '123';
$cfgvar3 = '123';
...



Хочу модуль написать более культурно, с использованием strict, юникода и прочего.
Но если я пишу use strict, тогда переменные в require-файле не попадают в область видимости основного файла.
Не подскажите, как это обойти?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
04.02.2014, 15:17
    #38548754
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Область видимости у require
В соседней теме, я уже рекомендовал посмотреть в сторону ООП. Либо попробуйте как-то так .
main.pl
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
use strict;
require "settings.pl";

my $settings = getSettings();

print $settings->{'cfgvar1'}; # 1111

1;


settings.pl
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
sub getSettings
{
	my $s = 
	{
		cfgvar1 => 1111,
		cfgvar2 => 2222,
		cfgvar3 => 3333
	};
	
	return $s;
}
...
...
Рейтинг: 0 / 0
04.02.2014, 17:34
    #38549092
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Область видимости у require
BlackВЛибо попробуйте как-то так .
Про такой подход я сообразил.
Просто система, которая использует эти модули-скрипты, рассчитывает на то, что в модуле есть глобальные переменные с предопределенными именами. Поэтому если я так сделаю, придется переписывать большой объем уже написанного кода.
Ок, значит оставлю как есть.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Область видимости у require / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]