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