我想写它运行的程序的Perl脚本foo,并bar和流程stdout的foo它发射到stdin的bar以流方式.Perl脚本应该像这个bash命令一样:
$ foo | some-perl-code | bar
Run Code Online (Sandbox Code Playgroud)
我设法用下面的代码片段完成第一部分.我启动程序foo并打开管道阅读stdout.
open( my $pipe_fh, "foo |" );
while ( my $row = <$pipe_fh> ) {
# do stuff
print $row;
}
Run Code Online (Sandbox Code Playgroud)
我如何实现第二部分?如何在 Perl脚本中$row向程序发出声音?bar
只需使用另一个打开,但还原管道的方向:
open my $in, '-|', 'foo' or die $!;
open my $out, '|-', 'bar' or die $!;
while ( my $row = <$in> ) {
# do stuff
print {$out} $row;
}
Run Code Online (Sandbox Code Playgroud)