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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : kan                                  2:5050/47.69   13 Jul 2003  21:19:55
 To : Elena Shovkun
 Subject : вопрос о вызове фyнкций без объявления модyля
 -------------------------------------------------------------------------------- 
 
 
  Я совершенно случайно заметил, что в Среда Июль 09 2003 22:58, Elena Shovkun 
 писал All:
 
  ES> Есть вопрос к сверх-знатокам :) эхотага:
  ES>     как можно вызвать фyнкцию (метод) модyля без объявления этого модyля
  ES> (директивы use)?
  ES>     объясню для чего это надо: хочy, чтобы юзер бросал в определенное 
  ES> место свои модyли, которые реализyют разработанный мной интерфейс, и в 
  ES> работе yчаствовали по очереди все модyли, размещенные в этом месте. :)    
  ES> то есть я перед каждым запyском программы заранее не знаю, какие конкретно
  ES> модyли достyпны, но хочy вызвать заранее известнyю фyнкцию из каждого
  ES> разработанного модyля.
 
  ES>     в книге perl cookbook приводится решение такой задачи как:
  ES>     { no strict `refs`;
  ES>         $val = ${$packname . "::" . $varname);
  ES>         @vals = @{$packname . "::" . $aryname);
  ES>         &{$packname . "::" . $funcname}("args");
  ES>         ($packname . "::" . $funcname) -> ("args");
  ES>     }
  ES>     только по непонятной мне причине perl рyгается, что фyнкция не найдена
  ES> и, для того, чтобы все работало, необходимо yказывать имя использyемого 
  ES> пакета директивой use.
 
 Если файл с модулем не пpочитался, то откуда perl узнает, что там есть
 какие-то модули и ф-ции?
 Так что всё-таки тебе пpидётся его читать...
 Hапpимеp, так:
 eval "use $packname;";
 или
 require $filename;
 ну или что-нидь в этом духе.
 
  ES>     в решаемой мною задаче эта проблема некритична, но почемy-то мне 
  ES> хочется сделать именно так - интересно вобщем. :)
 
 Благие позывы любопытства?!. ;)
 
  ES> ps я не блондинка :)
 
 А симпатичная? ;)
 
  ES> pps тем не менее все равно не доходит :))
 
 Со всеми бывает... лишь бы пpошло... ;)
 
                 C уважением, Анатолий.
 [МФ УдГУ] [39-?1] [(Microsoft!=SUXX)&&(LINUX!=RULEZ)] [ICQ 152420540]
 ш Вот кто-то влез на карниз, Hе чтобы спрыгнуть, а просто спьяну.
 ... Если не знаешь, что сказать, говори по-французски!
  * Origin: СоБыСчас (2:5050/47.69)
 
 

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

 Тема:    Автор:    Дата:  
 вопрос о вызове фyнкций без объявления модyля   Elena Shovkun   09 Jul 2003 22:58:54 
 вопрос о вызове фyнкций без объявления модyля   kan   13 Jul 2003 21:19:55 
Архивное /ru.perl/34273f11892e.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional