IPC::Open2 'open2'
IPC::Open2 'open2' はPerl上であるコマンドに好きな入力を与えて、その出力を利用したいという時に使える。
標準の open では
open(COMMAND, "command |"); open(COMMAND, "| command");
みたいに、どちらか片方しか扱えない。
IPC::Open2 'open' の使い方
use IPC::Open2; open2(*README, *WRITEME, $program); print WRITEME "here's your input\n"; # $program に "here's your input\n" という入力を与える close(WRITEME); # 入力を与え終わったら、出力用のパイプを閉じる for my $ret (<README>) { # $program から与えた入力の加工結果を受け取る print $ret; } close(README);
詳細は
perldoc IPC::Open2
というか、プロセス間通信のことよく知らないのでもっと調べたい。
参考
- Recipe 16.8. Controlling Input and Output of Another Program
- IPC::Open2 の簡単サンプル
- プロセス間通信 - Wikipedia
- IPC は InterProcess Communication の略