またPerl…

Perl にてファイルハンドルの受け渡しを行う方法。

open(HANDLE, ">$filename") or die "$!";
$handle = *HANDLE;
print $handle "Hello, world.?n";
close($handle);

これだけだと意味ないですけど、サブルーチン間での受け渡しの際に役に立ちます。ただし、あまりファイルハンドルをあちこちに引き回すとトラブルの元になりそうな予感。ログファイルにリアルタイムで書き出す処理などではあらかじめファイルを開き、ファイルハンドルを変数に入れておき自作のロギングルーチンを通して出力すると良いかな。

こういう処理を考えるとオブジェクト指向ブラックボックス化がどれだけありがたいかが分かりますね。だってLoggingっていうクラスを作成して、プライベートなファイルハンドルを持たせて専用のメソッドを作ればいいだけですからね。

あぁ、javaがあの言語仕様のままVMクロスプラットフォームを捨ててくれたら面白いだろうなぁ(言語仕様の大部分を捨てているけど…、まぁ妄想ですから)。最近オブジェクト指向の記事や話を見聞きしていなけどちゃんと進化しているだろうか。しているだろうな。