|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/70493085707e8.html, оценка из 5, голосов 10
|