symbolicky odkaz na balik
Pavel Kolesnikov
k na les.cz
Sobota Červenec 25 21:22:19 MEST 1998
Dobry den,
pri vytvareni jedne podtridy jsem zjistil, ze potrebuju,
aby promenna nadtridy, ktere je vytvorena jako instance
tridy IO::Socket::INET (ta promenna, ne nadtrida), byla
misto toho instanci z ni odvozene tridy HTTP::Daemon.
Jako nejuspornejsi moznost mi prislo pred vytvorenim
one instance (deje se tak v metode jmenem Bind) napsat neco
jako
$pkg = $self->{'socket_pkg'} || 'IO::Socket::INET'; (*)
a pak puvodni
$self->socket = IO::Socket::INET->new(...)
zmenit na obecnejsi
$self->socket = $pkg->new(...); (**)
s tim, ze v me odvozene tride predefinuju metodu Bind necim
jako
$self->{'socket_pkg'} = 'HTTP::Daemon';
$self->SUPER::Bind();
Prekvapilo me, ze to opravdu funguje, a ani perl -w ani
use strict proti tomu nic nenamitaji.
Chtel bych se ale zeptat, nakolik se tohle da povazovat za
slusny/vhodny/celkove pozitivni postup (a jestli to neni moc
velka prasarna na to, abych si moh dovolit autora puvodni tridy
otravovat s tim, ze by mel do ni pridat radky (*) a (**) :)
Pavel
Další informace o konferenci Perl