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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     05 Feb 2003  19:49:06
 To : Artem Chuprina
 Subject : Re: died at (eval 1) line 1
 -------------------------------------------------------------------------------- 
 
 ce.ru>
 
 From: Andrey Sapozhnikov <sapa@icb.chel.su>
 
 Artem Chuprina wrote:
 
 > AS> my $fr = my_eval $id, 'sub { my $test; $test->method() }';
 > AS> $fr->();
 > 
 > Это ловит ошибки в eval, а мне надо в выполнении его результата.
 
 тогда my_eval должен возвращать указатель на объект класса
 MyEvalResult вместо настоящего кода возврата. Возможный вид объекта:
 
 bless { RETCODE => $fr, ID => $id }, 'MyEvalResult';
 
 А для данного класса описать AUTOLOADER (прокси-метод вызывающий
 методы класса $fr и преообразующий их в анонимные объекты класса
 MyEvalResult наследуя ID), типа:
 sub AUTOLOADER {
      my $self = shift;
      my ($method = $AUTOLOAD) =~ s/^.*:://;
      my $ret = eval { $self->{RETCODE}->$method(@_) };
      die "ID: $self->{ID} $@" if $@;
      bless {RETCODE => $ret, ID => $self->{ID}}, ref($self};
 }
 
 ну и возможно перегрузить часть операций для объектов
 данного типа, например:
 
 use overload '""' => sub { '' . $self->{RETCODE} },
               '0+' => sub { 0 + $self->{RETCODE} }
 
 и т.д. на случай если данный кусок кода может возвращать
 не только reference.
 
 Андрей
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 died at (eval 1) line 1   Artem Chuprina   04 Feb 2003 14:21:00 
 Re: died at (eval 1) line 1   Konstantin Stupnik   04 Feb 2003 14:54:09 
 Re: died at (eval 1) line 1   Artem Chuprina   04 Feb 2003 15:32:02 
 Re: died at (eval 1) line 1   Konstantin Stupnik   04 Feb 2003 16:06:44 
 Re: died at (eval 1) line 1   Artem Chuprina   04 Feb 2003 16:30:20 
 Re: died at (eval 1) line 1   Andrey Sapozhnikov   05 Feb 2003 17:47:29 
 Re: died at (eval 1) line 1   Victor Wagner   05 Feb 2003 17:59:45 
 Re: died at (eval 1) line 1   Artem Chuprina   05 Feb 2003 18:07:58 
 Re: died at (eval 1) line 1   Andrey Sapozhnikov   05 Feb 2003 19:49:06 
 Re: died at (eval 1) line 1   Artem Chuprina   05 Feb 2003 19:53:39 
 Re: died at (eval 1) line 1   Victor Wagner   05 Feb 2003 19:58:45 
 Re: died at (eval 1) line 1   Anatoly Moskovsky   06 Feb 2003 16:23:13 
 Re: died at (eval 1) line 1   Artem Chuprina   06 Feb 2003 20:23:41 
 Re: died at (eval 1) line 1   Andrey Sapozhnikov   07 Feb 2003 18:23:50 
 Re: died at (eval 1) line 1   Andrey Sapozhnikov   07 Feb 2003 18:31:06 
Архивное /ru.perl/6577c7c09895.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional