use strict; use warnings; use IO::Handle; $^F = 100; pipe READHANDLE,WRITEHANDLE; binmode READHANDLE; binmode WRITEHANDLE; WRITEHANDLE->autoflush; READHANDLE->autoflush; unless (fork()){ exec $^X, $ARGV[0], fileno(READHANDLE); die; } print WRITEHANDLE "Test!\n"; close WRITEHANDLE; wait;