package Perl::LanguageServer::DebuggerBridge ; use 5.006; use strict; use IO::Socket ; use IO::Select; no warnings 'uninitialized' ; sub run { my $socket ; my $proto = getprotobyname ('tcp') ; my $ip = '127.0.0.1' ; my $port = $ARGV[0] || 13603 ; socket ($socket, PF_INET, SOCK_STREAM, $proto) or die "Can't create a socket $!\n" ; connect ($socket, pack_sockaddr_in ($port, inet_aton ($ip))) or die "Can't connect to $ip:$port $!\n" ; my $stdin = \*STDIN ; my $s = IO::Select->new(); $s->add($stdin); $s->add($socket); my $timeout = 0 ; my @ready ; while (@ready = $s->can_read()) { while (my $fh = shift @ready) { if ($fh == $stdin) { my $data ; exit if (sysread ($fh, $data, 16384) <= 0) ; syswrite ($socket, $data) ; } elsif ($fh == $socket) { my $data ; exit if (sysread ($fh, $data, 16384) <= 0) ; syswrite (\*STDOUT, $data) ; } } } } 1 ;