#!/usr/bin/perl
use Process;
$| = 1;
print STDERR "Started ..!\n";
Process::createProcess('./printApplication');
print STDERR ".. Finished!\n";
####
#!/usr/bin/perl
print STDERR " printing some text\n";
print STDERR " printing some text\n";
print STDERR " printing some text\n";
print STDERR " printing some text\n";
sleep 10;
####
package Process;
use strict;
use warnings;
use IO::Select;
use IPC::Open3;
sub createProcess ($) {
my($path) = @_;
my($selector, $pid, @ready, $fh, $line);
$pid = open3(*CMD_IN, *CMD_OUT, *CMD_ERR, $path);
$selector = IO::Select->new();
$selector->add(*CMD_ERR, *CMD_OUT);
while(@ready = $selector->can_read()) {
foreach $fh (@ready) {
if(fileno($fh) == fileno(CMD_ERR)) {
$line = scalar ;
if(defined $line) {
print STDERR $line;
}
}
else {
$line = scalar ;
if(defined $line) {
print STDOUT $line;
}
}
$selector->remove($fh) if eof($fh);
}
}
waitpid($pid, 0);
}