[Moscow.pm] mod_perl + Object Oriented
Victor Efimov
victor на vsespb.ru
Пн Ноя 24 10:46:54 PST 2014
Ничего не знаю про mod_perl, но адреса и так одинаковые у разных
процессов скопированных из одного (это в случае с fork)
$ perl -E 'fork; say $$, " ", {}'
27667 HASH(0xf0b998)
27668 HASH(0xf0b998)
24 ноября 2014 г., 21:14 пользователь Natalya Savenkova
<name2rnd на gmail.com> написал:
> Здравствуй, любимое сообщество!
> Подскажи мне, пожалуйста, что мне надо почитать/посмотреть, чтобы понять
> следующую вещь.
>
> Вот есть у меня 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
> moscow-pm на pm.org | http://moscow.pm.org
>
Подробная информация о списке рассылки Moscow-pm