Perl 中的 pipe函数

首页 / Perl入门教程 / Perl 中的 pipe函数

描述

此功能打开一对连接的通信管道: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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Service Mesh实践指南 -〔周晶〕

深入剖析Kubernetes -〔张磊〕

数据分析思维课 -〔郭炜〕

人人都用得上的数字化思维课 -〔付晓岩〕

快手 · 音视频技术入门课 -〔刘歧〕

快手 · 移动端音视频开发实战 -〔展晓凯〕

Serverless进阶实战课 -〔静远〕

手把手带你搭建推荐系统 -〔黄鸿波〕

B端产品经理入门课 -〔董小圣〕

好记忆不如烂笔头。留下您的足迹吧 :)