Subscribed unsubscribe Subscribe Subscribe

ファイルハンドルの出力先に変数を指定する

perldocによると、SVN::Clientモジュールのcatメソッドは

$ctx->cat(\*FILEHANDLE, $target, $revision, $pool);

という使い方をしろと書いてある。
FILEHANDLEにSTDOUTを指定すれば標準出力はできるし、適当なファイル名でopenしてやればファイルに書き出すこともできる。
でも、フィルタリングして標準出力させたい場合はどうすれば・・・?
わざわざ一度適当なファイルに書き出してからそれを読み取ってフィルタリングして標準出力に書き出すようなことはしたくない。
どうにかできないものか、と探してようやく発見。
『続・初めてのPerl』8章 ファイルハンドルへのリファレンス - ケーズメモ
第3引数に変数へのリファレンスをしていしてopenしてやれば、そこに書き出されるとのこと。
こういう使い方ができたとは全然知らなかった><


というわけでようやく出来上がった。SVNに保存しているファイルの内容を表示するCGI
まぁ普通にHTTPでSVNサーバーにアクセスすりゃいいんだろうけどさ。
http://www.sugyan.mydns.jp/~sugi/cgi-bin/src_view.cgi?path=cgi-bin/src_view.cgi