Автор Тема: Динамическое подключение модулей...  (Прочитано 2988 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть такой код..примерно...

@mod = (\'a\',\'b\',\'c\');

foreach(@mod) {
   require "$_\\.pm";
   my $ans = &exe("param");
}

т.е. грубо говоря...есть набор модулей, подключающихся динамически...они все имеют одну структуру...у них есть подпрограмма exe которая выполняется...

собственно в чём вопрос...когда первый модуль a.pm подключился, то в скрипт подгружается автоматом sub exe....при подключении модуля b.pm ссылаться продолжает на первый sub exe...вот и вопрос, как или обнулять, или выгружать модуль, чтобы sub exe новый появлялся?...такое возможно, или заводить обязательно уникальное имя sub\'a?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Динамическое подключение модулей...
« Ответ #1 : 19 Апреля 2007, 08:50:20 »
нет. квалифицируйте через имя пакета.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическое подключение модулей...
« Ответ #2 : 19 Апреля 2007, 11:14:30 »
Цитировать
arto:
нет. квалифицируйте через имя пакета.


т.е. заводить уникальные имена sub\'ов?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Динамическое подключение модулей...
« Ответ #3 : 19 Апреля 2007, 11:30:36 »
# for i in a b c d; do print -l "package $i;" "sub exe () { print \\"test $i\\"; }" "1;" >| $i.pm; done
# perl -le \'foreach (@ARGV) { require "$_.pm"; $_->exe (); }\' a b c d
test a
test b
test c
test d
#

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28