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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     13 Nov 2003  18:41:20
 To : Mikhail Polykovsky
 Subject : Re: Hаследование?
 -------------------------------------------------------------------------------- 
 
 Хмутро.
 
 MP> Здравствуйте. Что-то не могу сообразить.
 MP> У меня есть несколько модулей, в которых есть одинаковые функции
 MP> (например, сохранение сообщения об ошибке, как в DBI). Писать их в
 MP> каждом модуле не хочется. Объявить в базовом классе - не получилось,
 MP> потому что обращаться к ним надо из модуля, а не из скрипта,
 MP> вызывающего модуль. Писать везде SUPER тоже неудобно, уровень
 MP> вложенности заранее неизвестен. Что посоветуете?
 
 MP> Hеработающий вариант:
 MP> ============================================================================
 MP> ============ { package Base; use strict; my $errstr; sub errstr{       
 MP> return $_[0]? $_[0]->{'_errstr'} : $errstr; }
 
 MP> sub set_err{
 MP>         my ($self, $msg, $state, $result) = @_;
 MP>         if( $self ){
 MP>                 $self->{'_errstr'} = $msg;
 MP>         }else{
 MP>                 $errstr = $msg;
 MP>         }
 MP>         return $result; # usually undef;
 MP> }
 
 MP> }
 
 MP> ############################################################################
 MP> ####
 
 MP> {
 MP> package Child;
 
 MP> use strict;
 MP> use base qw(Base);
 
 MP> sub new {
 MP>         my ($this, $strategy) = @_;
 MP>         return set_err(undef, 'Hе указан код стратегии')
 
             return $this->set_err('Hе указан код стратегии')
 
 MP>                 unless $strategy;
 
 MP>         my $self = {};
 
 MP>         bless $self;
 MP>         return $self;
 MP> }
 
 MP> }
 
 MP> my $c = new Child;
 
 -- 
 Artem Chuprina
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757
 --- ifmail v.2.15dev5.1
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Hаследование?   Mikhail Polykovsky   13 Nov 2003 18:22:13 
 Re: Hаследование?   Artem Chuprina   13 Nov 2003 18:41:20 
 Re[2]: Hаследование?   Mikhail Polykovsky   13 Nov 2003 19:26:28 
 Re[2]: Hаследование?   Andrew Alakozow   13 Nov 2003 20:50:54 
 Re: Re[2]: Hаследование?   Artem Chuprina   14 Nov 2003 14:58:55 
 Re[4]: Hаследование?   Mikhail Polykovsky   14 Nov 2003 16:31:57 
 Re: Hаследование?   Sergey Skvortsov   13 Nov 2003 20:03:18 
 Re[2]: Hаследование?   Mikhail Polykovsky   13 Nov 2003 20:28:32 
 Re: Re[2]: Hаследование?   Sergey Skvortsov   13 Nov 2003 20:56:34 
 Re[4]: Hаследование?   Mikhail Polykovsky   13 Nov 2003 22:05:19 
 Re: Re[4]: Hаследование?   Sergey Skvortsov   13 Nov 2003 23:27:55 
 Re: Hаследование?   Alexey Mahotkin   13 Nov 2003 23:43:28 
 Re: Hаследование?   Sergey Skvortsov   14 Nov 2003 16:54:12 
 Re[2]: Hаследование?   Andrew Alakozow   13 Nov 2003 21:00:52 
 Hаследование?   Andrew Alakozow   13 Nov 2003 21:08:26 
 Re: Hаследование?   Sergey Skvortsov   14 Nov 2003 16:58:33 
 Hаследование?   Andrew Alakozow   14 Nov 2003 18:32:34 
Архивное /ru.perl/11477f86d428e.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional