- 2009/10/7 水曜日 1:49:30
- perl
Plackのsendfileサポート関連を追いかけてて、Plack::Server::Apache2でsendfileサポートされてない理由がfhからファイル名を取るベストな方法がないというわけで、gist: 200797みたいなパッチを書いて#http-engineとかに張り付けたけどそれlinuxでしか動かないよねみたいなことで日本の恥を晒してしまったりしてたわけですが、その中でIO::File::WithPathみたいなのがあればいいよねと話がでていたので作ってみました。
使い方はこんな感じ。
my $fh = IO::File::WithPath->new('/path/to/file'); print $fh->path; # /path/to/fileがとれるよ print $fh->getline; # IO::Handleとしても扱える print <$fh>; # もちろんGLOBとしても
Plackのappでは
return ['200', [], IO::File::WithPath->new('/path/to/file')];
みたいな使い方を想定していますが、Plack::Server側はこのモジュールを使うことが前提というわけではなくて、duck typingで->pathがあるオブジェクトであればそのpathを(使える条件であれば)使うようになる予定だと思います。
あと、純粋なfhからpathを取るマルチプラットフォーム対応なモジュールもできれば欲しいよねというところ。windowsはかなり無理っぽい。
コメント:0
トラックバック:0
- この記事のトラックバック URL
- https://blog.everqueue.com/chiba/2009/10/07/321/trackback/
- トラックバックの送信元リスト
- ファイルPATHを覚えているfhを作成できるIO::File::WithPathをリリース - へぼい日記 より