,

named pipe 名前つきパイプ

mknod named_pipe_filename p
後はperl
書き込み側プロセス:open(OUT, "> named_pipe_filename")
読み出し側プロセス:open(IN, "< named_pipe_filename")
とか、普通にwhile()すると書き込み側プロセスが終了すると読み出し側プロセスも終了します。当たり前ですがprintしてもフラッシュ($|=1)するまで読み出されません。

#!/usr/bin/perl
#mknod testpipe p
$ARG = shift;
if($ARG =~ /-i/){ #書き込み側はオプション -i
 open(OUT, "> testpipe");
 select OUT;
 while(<>){  print ;  $| = 1;}
 exit(0);
}
#読み出し側はオプションなし
open(IN, "< testpipe");
while(){  print; }