|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : P4elovod Planety 2:5020/1935.15 20 Jun 2003 23:15:55 To : Mikhail Polykovsky Subject : BEGIN - DESTROY -------------------------------------------------------------------------------- MP> Здравствуйте. MP> Допустим, есть класс, все экземпляры которого пользуются коннектом к MP> базе (одним на все экземпляры). MP> my $dbh; MP> sub BEGIN{ MP> $dbh = connect_to_database(); MP> } MP> sub new{ MP> # tru-la-la MP> $self->{'handle'} = $dbh; MP> } MP> Вопрос в том, как мне организовать DESTROY? Если отключаться от базы в MP> нем, тогда скрипт отключится при первом удалении объекта, остальные не MP> смогут работать с базой. А если вообще ни один экземпляр не MP> создавался, DESTROY не будет вызван, и коннект повиснет. Как MP> поступить? Если не создавался ни один экземпляр, зачем зря дергать базу ? например так: my $dbh; my $refc; sub new { connect_to_database() unless($dbh); $refc++; } sub DESTROY { $ref--; disconnect() if($refc == 0); } --- make it funky .. * Origin: .. (2:5020/1935.15) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/234753ef39906.html, оценка из 5, голосов 10
|