use IPC::Open3 qw( open3 ); open(local *TO_CHLD, '<', '/dev/null') or die; open(local *FR_CHLD, '>', '/dev/null') or die; open3('>&TO_CHLD', '<&FR_CHLD', '<&FR_CHLD', 'kedit');