• 締切
  • すぐに回答を!

open2 他プロセスと双方向でデータの受け渡し

  • 質問No.2537410
  • 閲覧数212
  • ありがとう数0
  • 気になる数1
  • 回答数1
  • コメント数0

お礼率 59% (13/22)

以下のような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件)

  • 回答No.1

ベストアンサー率 42% (1231/2878)

入出力ハンドルの指定について、perldoc IPC::Open2の例と比べてみては。
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ