Perl pipe 函数

  • 描述

    pipe 此函数打开一对连接的通信管道:READHANDLE用于读取,WRITEHANDLE用于写入。您可能需要设置$| 在每个命令后刷新您的WRITEHANDLE。
  • 句法

    以下是此函数的简单语法-
    
    pipe READHANDLE, WRITEHANDLE
    
  • 返回值

    如果失败,此函数返回0,如果成功,则返回1。
  • 示例

    以下是显示其基本用法的示例代码-
     
    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;
    }
    
    尝试一下
    执行结果:
    
    Got 34+56;
    Got a value of 90 from child