The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use warnings;
use strict;

use IO::File;

autoflush STDIN;
autoflush STDOUT;

my %file_desc;
my %pid;

while ( my $command = <STDIN> ) {
    chomp $command;
    print "From program exec.pl : received message $command\n";

    exit if ( $command eq "quit" );

    my ( $file_name, $action, $data ) = split( /\|/, $command );
    if ( $action eq 'start' ) {
        if ( my $pid = $pid{$file_name} ) {
            if ( kill 0, $pid ) {
                kill 9, $pid;
            }
        }
		print "From program exec.pl : executing command $data...\n";
        $pid{$file_name} = open $file_desc{$file_name}, "| $data";
    }
    elsif ( $action eq 'stop' ) {
        if ( my $pid = $pid{$file_name} ) {
            if ( kill 0, $pid ) {
                kill 9, $pid;
            }
        }
    }

    # Send action here (to send data from Editor.pl to STDIN of launched process)
}