- 締切済み
open2 他プロセスと双方向でデータの受け渡し
以下のような2つのプログラムA、Bを作成したのですが、うまく動かなくて困っています。 どういうものかというと、大まかに言えば、AからBを呼び出し、Aで入力したデータをBへ送り、 Bでそのデータに処理を加え、Aでそれを受け取って表示させるというものです。 データは文字列とします。 例えば、こんな感じです。 Aに「abc」と入力すると… A:abc→A:文字列をリバース(cba)→Bへ送る→B:文字列を大文字にする(CBA)→ →A:Bからデータを受け取る(CBA)→A:文字列をリバース(ABC)→A:出力(ABC) よろしくお願いします。 プログラムA #!/usr/bin/perl use IPC::Open2; use FileHandle; $program_name = 'プログラム名'; $data = <>; chomp $data; $data = reverse($data); print "(A):$data"; STDOUT->autoflush(1); if(open2(READER, WRITER, $program_name)){ print WRITER $data; close(WRITER); $data = <READER>; close(READER); } $data = reverse($data); print "(A):$data"; --------------------------------------- プログラムB #!/usr/bin/perl $data = <>; chomp $data; $data = uc($data); print "(B):$data";
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- osamuy
- ベストアンサー率42% (1231/2878)