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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Vladimir Pastukhov                   2:5020/400     02 Oct 2001  19:09:12
 To : All
 Subject : перегрузка оператора ==
 -------------------------------------------------------------------------------- 
 
 Hi,
 
 Пытаюсь тут изобразить нечто вроде
 
 use overload '==' => sub {
     my ($a, $b) = @_;
     return $a == $b if ref $a and ref $b;
     return ((ref $a ? $a->{name} : $a) eq
             (ref $b ? $b->{name} : $b));
 };
 
 Двух объектов с одинаковым name у меня быть не может, поэтому первый
 return добавлен для скорости - чтобы не лезть без необходимости в хэш.
 Проблема в том, что при выполнении $a == $b перл, естественно, уходит
 в глубокую рекурсию. Можно ли как-нибудь вызвать CORE::== или остается
 перегружать eq вместо == ?
 
 --
 Vladimir Pastukhov <vlpast@mail.ru>
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 перегрузка оператора ==   Vladimir Pastukhov   02 Oct 2001 19:09:12 
Архивное /ru.perl/6577b37308b4.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional