Здравствуй, любимое сообщество!
Подскажи мне, пожалуйста, что мне надо почитать/посмотреть, чтобы понять
следующую вещь.
Вот есть у меня 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
Почему тут одинаковые адреса?
Сообщество, помоги!
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org