0

ファイルハンドルを開いて、次のようにファイルにリダイレクトできることはわかっています。

open(HANDLE, ">", "filename.txt");

次のようなコマンドにリダイレクトすることもできます。

open(HANDLE, "|-", "grep hello");

私がやりたいのは、それを関数に向けることです:

open(HANDLE, "|func", f);

どこfで は、ファイルハンドルを 1 つの引数として取り、そのファイルハンドルから必要に応じて読み取り、必要に応じて書き込むことができる関数です。

その中に新しいファイルを作成することでこれをエミュレートできることはわかっていますがf(FILEHANDLE)、それにはいくつかの問題がf(FILEHANDLE)ありg(option1, option2)ますf(FILEHANDLE)。 'コマンドラインの引用符などのすべての問題とともに、コマンドラインパラメーターを渡す必要があります.

ファイルハンドルをサブルーチンに向けることができる方法 (またはライブラリ) はありますか? 舞台裏のライブラリがfork().

4

1 に答える 1

1

コードに変数のインターフェイスを持たせたい場合は、変数にtieコーディングします。Tie::Handleを参照してください。

于 2013-02-15T06:05:35.967 に答える