use strictures 1; use Tak::JSONChannel; use Tak::ServiceManager; use Tak::EvalService; use Tak::ModuleLoader; use Tak::Router; use Tak::Remote; open my $stdin, '<&', \*STDIN; open my $stdout, '>&', \*STDOUT; my $channel = Tak::JSONChannel->new( read_fh => $stdin, write_fh => $stdout, ); my $eval = Tak::ServiceManager->new( service => Tak::EvalService->new ); my $router = Tak::Router->new( channel => $channel, local_request_handlers => { EVAL => $eval } ); my $remote = Tak::Remote->new( router => $router, name => 'MODULE_SENDER' ); my $loader = Tak::ModuleLoader->new( remote => $remote ); shift @INC; shift @INC while $INC[0] =~ /^\Q$ENV{HOME}/; unshift @INC, $loader->inc_callback; $router->run;