- Perl 基礎
- Perl - 主頁
- Perl - 簡介
- Perl - 環境
- Perl - 語法概述
- Perl - 資料型別
- Perl - 變數
- Perl - 標量
- Perl - 陣列
- Perl - 雜湊
- Perl - IF...ELSE
- Perl - 迴圈
- Perl - 運算子
- Perl - 日期和時間
- Perl - 子例程
- Perl - 引用
- Perl - 格式
- Perl - 檔案 I/O
- Perl - 目錄
- Perl - 錯誤處理
- Perl - 特殊變數
- Perl - 編碼標準
- Perl - 正則表示式
- Perl - 傳送電子郵件
- Perl 應用程式
- Perl - 套接字程式設計
- Perl - 面向物件
- Perl - 資料庫訪問
- Perl - CGI 程式設計
- Perl - 包和模組
- Perl - 程序管理
- Perl - 嵌入式文件
- Perl - 函式引用
- Perl 有用資源
- Perl - 問題和答案
- Perl - 快速指南
- Perl - 有用資源
- Perl - 討論
Perl 管道函式
說明
此函式開啟一對已連線的通訊管道:READHANDLE 用於讀取和 WRITEHANDLE 用於寫入。您可能需要將 $| 設定為在每條命令後重新整理您的 WRITEHANDLE。
語法
以下為此函式的簡單語法 −
pipe READHANDLE, WRITEHANDLE
返回值
此函式在失敗時返回 0,在成功時返回 1。
示例
以下是顯示其基本用法的示例程式碼 −
#!/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
perl_function_references.htm
廣告