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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     24 Mar 2003  13:53:17
 To : Mikhail Polykovsky
 Subject : Re: Re[2]: eval
 -------------------------------------------------------------------------------- 
 
 Здравствуй, Mikhail Polykovsky.
 
 MP>>> Вываливается по syntax error в строке с use. Как правильно сделать?
 AA>> Попробуй так:
 
 AA>> eval qq|
 AA>>      use $module ($sub);
 AA>>      #use $module тоже не работает
 AA>>      \$${module}::our_var1 = \$var1;
 AA>>      \$${module}::our_var2 = \$var2;
 AA>>      \$out .= &${sub}(\$var3);  # если вызывать из ранее подключенного
 AA>>                               #       модуля, эта строка работает
 AA>> |;
 
 AA>> print $@;
 MP> Ага, вызов проходит, но те значения, что раньше возвращали функции,
 MP> почему-то не возвращаются. Переменная, куда записывается результат,
 MP> пуста (а раньше возвращалось корректно). Куда копать?
 
 Здравый подход заключается в том, чтобы поделить две части. А именно:
 
 eval "use $module ($sub)";
 if ($@) { обработка ошибки }
 ${"${module}::our_var1"} = $var1;
 ${"${module}::our_var2"} = $var2;
 $out .= &$sub($var3);
 
 Возможно, еще придется поиграться с no strict 'refs', если мы под use strict.
 Hо скорее всего, эта задача свидетельствует об ошибке проектирования этого
 места.
 
 -- 
 Artem Chuprina
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re[2]: eval   Mikhail Polykovsky   24 Mar 2003 13:37:50 
 Re: Re[2]: eval   Artem Chuprina   24 Mar 2003 13:53:17 
 Re[4]: eval   Mikhail Polykovsky   24 Mar 2003 14:04:32 
 Re: Re[4]: eval   Artem Chuprina   24 Mar 2003 16:01:36 
 Re[6]: eval   Mikhail Polykovsky   24 Mar 2003 16:16:58 
 Re: Re[6]: eval   Artem Chuprina   24 Mar 2003 18:54:41 
 Re[6]: eval   Mikhail Polykovsky   25 Mar 2003 13:31:17 
 Re: eval   Victor Wagner   25 Mar 2003 13:45:05 
 Re[2]: eval   Mikhail Polykovsky   25 Mar 2003 13:54:49 
Архивное /ru.perl/11477d315035a.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional