Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrei Protasovitski                 2:450/186      02 Aug 2005  09:45:44
 To : Yurik shestakov
 Subject : Re: Снова подключение модулей во время вып о лнения
 -------------------------------------------------------------------------------- 
 
 Доброго здоровья!
 
 yurik shestakov пишет:
 
 > AP> if (нужен модуль Module::Name) {
 > AP>    require Module::Name;
 > AP>    # создание объектов и переменных (инициализация)
 > AP> }
 > [...]
 > AP> Хотелось бы вынести все, что находится между фигурных скобок, в 
 > AP> отдельный файл и написать такую процедуру, которая подгружала бы модуль 
 > AP> и запускала бы инициализацию. Однако что-то у меня ступор от жары: 
 > AP> модуль подгружается, но переменные не видны.
 > AP> Может, кто-нибудь решал подобную проблему?
 > А ты попробуй явно позвать функцию Module::Name::import()
 > Или неявно через eval "use $package_name";
 > По крайней мере логично было бы специфичную для модуля инициализацию
 > вынести в sub import {}
 
 Да модуль грузится через require без лишних телодвижений. Проблема в 
 том, что созданные объекты и переменные видны только в пределах 
 подгружаемого файла.
 
 Первое, что пришло в голову:
 
 [-=cut=-]
 my $separator = $/;
 undef $/;
 open(SCRIPT, "path/to/the/script.pl") or die "Cannot load the script: $!";
 my $script = <SCRIPT>;
 eval $script;
 $/ = $separator;
 [-=cut=-]
 
 В принципе, можно написать процедуру, возвращающую $script. Как правило, 
 код инициализации небольшой, так что большой нагрузки на память не будет.
 
 -- 
 Andrei Protasovitski              mailto:andrei()siliconmaterials.com
 http://www.siliconmaterials.com/  ICQ: 75725244
 Pinsk, Belarus
 --- Mozilla Thunderbird 1.0.6 (Windows/20050716)
  * Origin: -= http://fido.ext.by (sponsored by http://extmedia.com) (2:450/186)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Снова подключение модулей во время вып о лнения   Andrei Protasovitski   02 Aug 2005 09:45:44 
Архивное /ru.perl/70493085707e8.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional