今回CGI::Application::DispachでWEBアプリケーションを作成しようと思って
以下のHPの通りにプログラムを作成をしたのですが、エラーが発生して実行できません。。。(404エラー)
*サンプルプログラムのlibのパスだけ"./lib"と変更しております。
http://www.itmedia.co.jp/enterprise/articles/0703/29/news014.html
Apacheのログは以下です。
[Tue May 06 16:19:26 2008] [error] [client 192.168.x.x] Passing extra args ('DEFAULT') to dispatch() is deprecated! Please use 'args_to_new' at ~/app.cgi line 7
[Tue May 06 16:19:26 2008] [error] [client 192.168.x.x] Passing extra args ('PREFIX') to dispatch() is deprecated! Please use 'args_to_new' at ~/app.cgi line 7
[Tue May 06 16:19:26 2008] [error] [client 192.168.x.x] [Dispatch] ERROR' for request '~/app.cgi/index': Can't find module Index
フォルダ構成は以下となっており問題ないと思っているのですが。
◇フォルダ構成◇
app.cgi
|--lib
|----UU
|----Index.pm
|----template
|----index.tt
当方の環境は、以下となります。
MacOSX 10.5.2
perl 5.8.8
Perlエキスパートの方アドバイスをいただきたいです。。
最新版のドキュメントを確認した所,dispatchの引数として与えるハッシュのキーは,prefixとdefault(共に小文字)の様です。ここを大文字に変えて試してみた所同様の現象が発生したので,ここを小文字に変えれば解消するのではないかと。
文章だけでは上手く伝わらなかった雰囲気なので具体的なコードで示すと,現状app.cgiは以下の様にされているかと思いますが,
#!/usr/local/bin/perl use strict; use lib qw (./lib); use CGI::Application::Dispatch; CGI::Application::Dispatch->dispatch( PREFIX => 'UU', DEFAULT => 'Index', );
最近のバージョンでは,以下の様に,記事のコードでPREFIXとDEFAULTと大文字になっている所を小文字に変える必要があるという事です。
#!/usr/local/bin/perl use strict; use lib qw (./lib); use CGI::Application::Dispatch; CGI::Application::Dispatch->dispatch( prefix => 'UU', default => 'Index', );
コメント(1件)
無事エラーがでなくなりました!