my $pipe_qfn = 'xxx.fifo'; if (!-e $pipe_qfn) { system(mknod => $pipe_qfn, 'p') or die("Can't create pipe \"$pipe_qfn\": " .($?==-1 ? $! : "exit code $?")."\n"); } open(my $pipe_fh, '>>', $pipe_qfn) or die("Unable to open pipe \"$pipe_qfn\": $!\n"); print $pipe_fh $msg;