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

модуль.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
(Perl) Область видимости у require
    #38548754
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В соседней теме, я уже рекомендовал посмотреть в сторону ООП. Либо попробуйте как-то так .
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
(Perl) Область видимости у require
    #38549092
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackВЛибо попробуйте как-то так .
Про такой подход я сообразил.
Просто система, которая использует эти модули-скрипты, рассчитывает на то, что в модуле есть глобальные переменные с предопределенными именами. Поэтому если я так сделаю, придется переписывать большой объем уже написанного кода.
Ок, значит оставлю как есть.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Область видимости у require
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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