![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
今現在Perlの勉強をしているところなのですが、詰まってしまったのでアドバイスをいただきたいです。あるPerlプログラムで作成したファイルを、そのプログラム内でパイプ処理し、その結果を再びそのプログラム内で利用したいと考えています。例えば以下のようなプログラムPは作成可能でしょうか、可能であればその方法を教えていただきたいです。サンプルコードなどがあれば幸いです。
プログラムPの概要
あるファイルを作成する→そのファイルを別のプログラムで実行(結果は○か×を出力)→結果が○であれば再びファイルを作成する、結果が×であればプログラム終了
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
表示がくずれるので、空白2文字を全角空白にしていることに注意
use strict;
use warnings;
use autodie;
use IPC::Open3;
open3( my $std_in, my $std_out, my $std_err, 'tr', 'a-z', 'A-Z' )
or die "open3";
print {$std_in} "hoge hoge\n";
close $std_in;
while (my $line = <$std_out>) {
print 'Parent : ', $line;
}
close $std_out;
---
$ perl -w pipe_response.pl
Parent : HOGE HOGE
No.1
- 回答日時:
パイプ処理というのは複数のプロセスを標準入力と標準出力で結びつけるものですから、「そのプログラム内でパイプ処理し」という表現は何か変です。
どのプログラムからの出力をどのプログラムが入力として受け取るのかを明確にしましょう。「結果として○か×を出力する別のプログラム」をQと呼ぶことにします。Qは引数に指定されたファイルFを読み込み、標準出力に結果を出力します。その結果をPで読み取りたいなら、
open(QPROC, "Q F |");
while (<QPROC>) { # Qからの出力を読み込む
… # 読み込んだ結果を処理する
}
close(QPROC);
という感じでいいはずです。
Qが引数に指定されたファイルを読み込むのではなく、標準入力にファイルFの内容を与えたい場合は上記のopen()のところを
open(QPROC, "Q < F |");
とします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) マウスを使用してpowershellのプログラムを起動して、引数リストを渡したい 1 2022/11/07 21:39
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 1. 仮想CPU「exmini」を使用して,「$dataからn減算する」プログラムを作成してください 2 2022/07/04 17:49
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- その他(プログラミング・Web制作) プログラムが書けません。 6 2023/01/22 22:58
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、写真のプログラムをどう直せ 2 2022/07/09 21:13
- Windows 10 Windowsのタイムスケジューラーについての質問です。 先日、Webスクレイピング用のプログラムを 1 2022/09/28 05:51
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- IT・エンジニアリング 不具合の現状認識をしないプログラマって信用できる人? できない人? 8 2023/07/28 09:09
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
ファイル出力の改行コードをLFに
-
エクセルVBAで素数だけを出力す...
-
DOSコマンドで、標準出力を出力...
-
重複するデータを抽出できる秀...
-
教えて!perlから.exeファイル...
-
テキストファイルから日本語部...
-
ドメインからIPアドレスあるい...
-
window.open でのファイル指定方法
-
VBAでCSVファイルの特定行を書...
-
ReadLineでの読み出し行を指定する
-
VBAで巨大なファイルの途中から...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
htaccessで特定のディレクトリ...
-
fopenでディレクトリ内の全ファ...
-
fgets で値が取得できない
-
エクセルVBA コードが同じでも...
-
配列の中に重複文字列があるか...
-
MATLABのm-fileについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
エクセルVBAで素数だけを出力す...
-
sprintfについて
-
教えて!perlから.exeファイル...
-
重複するデータを抽出できる秀...
-
log2の「正確な」計算方法
-
DOSコマンドで、標準出力を出力...
-
文字コードの変換(Shift-JISか...
-
perlでの文字列抽出
-
至急お願いします。C言語で.img...
-
ダイアモンド演算子<>に対するb...
-
コマンドプロンプトで行が見え...
-
Perlで着メロDLカウント
-
perlのpushについてです。
-
perlでcsvの出力について
-
CGIから外部コマンド実行時の標...
-
ドメインからIPアドレスあるい...
-
MySQLに画像を格納してperlで取...
-
perlでcsvの指定フィールドに書...
-
htmlから、ファイル、もしくはC...
おすすめ情報