此功能打开一对连接的通信管道:READHANDLE用于读取,WRITEHANDLE用于写入。您可能需要设置$|在每个命令后刷新您的WRITEHANDLE。
以下是此函数的简单语法-
pipe READHANDLE, WRITEHANDLE
如果失败,此函数返回0,如果成功,则返回1。
链接:https://www.learnfk.comhttps://www.learnfk.com/perl/perl-pipe.html
来源:LearnFk无涯教程网
以下是显示其基本用法的示例代码-
#!/usr/bin/perl -w use IO::Handle; pipe(PARENTREAD, PARENTWRITE); pipe(CHILDREAD, CHILDWRITE); PARENTWRITE->autoflush(1); CHILDWRITE->autoflush(1); if ($child=fork) { # Parent code close CHILDREAD; # We don't need these in the parent close PARENTWRITE; print CHILDWRITE "34+56;\n"; chomp($result=<PARENTREAD>); print "Got a value of $result from child\n"; close PARENTREAD; close CHILDWRITE; waitpid($child,0); } else { close PARENTREAD; # We don't need these in the child close CHILDWRITE; chomp($calculation=<CHILDREAD>); print "Got $calculation\n"; $result=eval "$calculation"; print PARENTWRITE "$result\n"; close CHILDREAD; close PARENTWRITE; exit; }
它将产生以下输出:您可以看到计算输出已发送到CHILDWRITE,然后由子级从CHILDREAD中读取。然后计算输出并将其通过PARENTWRITE发送回父级,父级从PARENTREAD读取输出。
Got 34+56; Got a value of 90 from child
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)