Конечно наоборот: *{ $caller.'::'.$var } = $ENV{CORO} ? $Coro::var : $var
On Jan 17, 2014, at 1:02 PM, Eugene Toropov wrote:
> Всем привет,
>
> Есть глобальная переменная (объект), экспортируемая из пакета (пусть будет
> Package) стандартным способом - use vars qw($var); @EXPORT = qw($var) - и
> используемая сплошь и рядом в большой системе. Надо сделать так, чтобы при
> запуске системы из под Coro сервера она стала локальной для каждого треда без
> переписывания исходников. Пока в голову пришло что-то вроде
>
> sub import {
> no strict 'refs';
> my $caller = caller;
> *{ $caller.'::'.$var } = $ENV{CORO} ? $var : $Coro::var;
> }
>
> в том самом Package. Тогда use Package, который на самом деле BEGIN { require
> Module; Module->import( LIST ); } должен отработать как надо. Пока просто
> идея, не проверял. Есть у кого мысли?
>
> Евгений
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org