use v5.12;
use warnings;
use IPC::Run3;
my ($cmd, $in, $out, $err);
$cmd = 'perl ./server.pl';
open my $fh_in,"|-", $cmd;
#my @in;
#run3($cmd, \@in);
sub out {
$fh_in->say(@_);
}
my $doit;
for my $try (2,3,2) {
$doit = "$;" x $try;
out($doit);
out($_) for 1..$try;
out($doit);
}
out("EOF");
####
use v5.12;
use warnings;
STDOUT->autoflush;
my $doit;
my $input;
while ( my $line = ) {
unless ( defined $doit ){
$doit = $line;
last if $doit eq "EOF";
next;
}
if ($line eq "$doit") {
doit();
undef $doit;
} else {
$input .= $line;
}
}
say "exit by $doit";
exit;
sub doit {
print "((( STDOUT ::: $doit";
print $input;
print "))) STDOUT ::: $doit";
#warn "STDERR:",$input," ";
$input ="";
}
####
((( STDOUT :::
1
2
))) STDOUT :::
((( STDOUT :::
1
2
3
))) STDOUT :::
((( STDOUT :::
1
2
))) STDOUT :::
exit by EOF