[Moscow.pm] mod_perl + Object Oriented
Natalya Savenkova
name2rnd на gmail.com
Пн Ноя 24 10:14:12 PST 2014
Здравствуй, любимое сообщество!
Подскажи мне, пожалуйста, что мне надо почитать/посмотреть, чтобы понять
следующую вещь.
Вот есть у меня mod_perl с handlers
Есть у меня там функция такая, которая дальше вызывается в обработчиках,
она не вызывается при запуске, а только когда пришел первый запрос:
package MyLib::Handler;
use MyLib::Obj;
sub obj {
our $obj;
warn 'obj ', $obj, $obj->{ pid } if $obj;
return $obj if $obj;
$obj = MyLib::Obj->new( pid => $$);
}
Вот этот Obj;
package MyLib::Obj;
sub new {
my $package = shift;
my $opt = {@_};
my $self = {};
$self->{ pid } = $opt->{ pid };
return bless($self, $package);
}
pid сюда добавлен для дебага, чтобы в логах было видно, кто создал obj
и обвес на warn
BEGIN {
$SIG{'__WARN__'} = sub {
warn $$.' --> '.$_[0] ;
};
}
И получается, что в логах выглядит вот так
16373 --> obj MyLib::Obj=HASH(0x80461c420) 16373
16372 --> obj MyLib::Obj=HASH(0x80461c420) 16372
Почему тут одинаковые адреса?
Сообщество, помоги!
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20141124/b7605705/attachment.html>
Подробная информация о списке рассылки Moscow-pm