Plack::Middleware::Static::Range が使えない問題の解決方法
Plackを用いてHTTP pseudo-streamingを行いたい場合には、Plack::Middleware::Static::Range を用いれば良いという情報がよく書かれています。 しかしながらPerl 5.22.1のような新しいバージョンを利用している場合、依存している PerlIO::subfile というモジュールのインストールに失敗するため、インストールすることができません。
Plackとhtmlのvideoタグを一緒に使う場合に気をつける事 - Qiita
上記記事では開発版のPerlを用いていないことが原因とされていますが、本当の原因は、Perl 5.20あたりからusesfioというビルドオプションが無くなってしまったためです。
forkして修正しようかと思ったんですが、すでに作られていた方がいたのでそちらを利用しましょう。
$ cpanm https://github.com/nqounet/PerlIO-subfile/archive/master.tar.gz
こんな感じでインストールしてから、もう一度Plack::Middleware::Static::Rangeをインストールすると上手くいきます。