ziguzagu.orgziguzagu.orgCGI::Application::Dispatch勉強中その22005-09-06Perl周辺のちょっとしたものも含めてだいたい把握した気がするCGI::Application::Dispatch。便利です、すごく、とても。今までCGI::Applicationを使う時はPATH_INFOを使わず、テンプレートファイルはインスタンスCGIと同じパスにおいてたので、テンプレートファイルをどこかひとつのディレクトリ以下にまとめる(CGI::Application::tmpl_path())、というのに全然まだ慣れません。インスタンスCGIとテンプレートファイルを同じディレクトリにおくと、「URIの階層=ファイルのありか」になるので、HTML内のリンクを相対パスで書くのも気になりませんでした。CGI::Application::Dispatchを使う場合は、PATH_INFO形式を利用することが前提なうえ、URIが全部、http://example.com/dispatch.cgi/モジュール名/Runモードな感じになります。なると、今までの「URIの階層=ファイルのありか」という方法でテンプレートを並べて、リンクURIを相対パスで書く、というのが不便になりました。URIたびたび間違うし...。相対パスは使わないCGI::Application::tmpl_path()で指定するのはcgiがあるパスとは別のところという使い方をしてます。絶対パスでリンクURIを書いたことがほとんどないので、URIがかわると全部置換する必要があるなぁ、なんてたぶん無用な不安を抱いたりもしています。この不安が解消されるまでは、しばらく右往左往しそうです。どこかに、こういうディレクトリ構成のガイドとか、絶対パス・相対パスどっちできじゅつするのがよいかHowToみたいのはなかろうか...。こちらでDispatchについてまとめました。