当方perl初心者です。

今回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エキスパートの方アドバイスをいただきたいです。。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/05/13 17:10:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:lunlumo No.1

回答回数107ベストアンサー獲得回数14

ポイント60pt

 最新版のドキュメントを確認した所,dispatchの引数として与えるハッシュのキーは,prefixとdefault(共に小文字)の様です。ここを大文字に変えて試してみた所同様の現象が発生したので,ここを小文字に変えれば解消するのではないかと。

id:lunlumo No.2

回答回数107ベストアンサー獲得回数14

ポイント10pt

 文章だけでは上手く伝わらなかった雰囲気なので具体的なコードで示すと,現状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',
);

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません