人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlで”<>”をコマンドへ渡し、そのコマンドでフィルターしたものをさらに受け取るにはどうすればよいでしょうか。
具体的には、
---
open( f, ”cmd |” );
while( <f> ) {
フィルタ処理
}
---
への入力を、標準入力からでも引数でも行えるように、スマートに書きたいと思い、”<>” をopenで開いたcmdへそのまま渡す方法があれば、と思ったのですが。

●質問者: stealthinu
●カテゴリ:コンピュータ
✍キーワード:open Perl コマンド スマート フィルタ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● shuyamakawa
●25ポイント

http://www.freeml.com/message/perl@freeml.com/0005145

みんなのHappyコミュニティ! freeml[フリー・エムエル] - メッセージ perl 質問箱 - 5145

標準モジュールの”IPC::Open2”を使用してみてください。

◎質問者からの返答

やはりOpen2を利用しないと無理でしょうか。


2 ● tiopepe
●25ポイント

http://www.kt.rim.or.jp/~kbk/perl5.005/perlipc.html#Bidirectiona...

perlipc - Perl $B$N%W%m%;%94VDL?.(J

UNIXならopen2()はどうでしょう?まさにその目的で使えます。

◎質問者からの返答

こちらもOpen2ですね。

やっぱりOpen2を使うのが普通のようですので、Open2で書くことにします。

そもそもなんで open( f, ”cmd |” ) に標準入力が渡るんだろう?そういう仕様なんだろうけども。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ