[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