7 use Tak::ServiceManager;
10 my $pid = open2(my $out, my $in, $^X, qw(-Ilib takd))
11 or die "Couldn't open2 child: $!";
13 my $channel = Tak::JSONChannel->new(
18 my $router = Tak::Router->new(
20 local_request_handlers => {
21 MODULE_SENDER => Tak::ServiceManager->new(
22 service => Tak::ModuleSender->new
27 my $remote = Tak::Remote->new(
32 my $read = Term::ReadLine->new('REPL');
35 my $line = $read->readline('re.pl$ ');
36 exit unless defined $line;
37 next unless length $line;
38 my $reply = [ $remote->blocking_request(eval => $line) ];
39 if ($reply->[0] eq 'MISTAKE') {
40 die "Botch: ".join(': ', @{$reply}[1,2]);
42 my $ret = $reply->[1];
45 chomp($ret->{stdout});
46 print "STDOUT:\n${\$ret->{stdout}}\n";
49 chomp($ret->{stderr});
50 print "STDERR:\n${\$ret->{stderr}}\n";