さくらサーバーの

スタンダードプランのサーバーで、
perlのCGIでDBI+DBDを使用してmysqlに接続し、
tableの検索・削除等は通常に行えますが、

Class::DBIを使用しようと
Web+DB Press vol.25の
p160のようにしたのですが、
うまくいきませんでした。

cpanからダウンロードしたモジュール、
及び、その他の状況につきましては、
以下のとおりになります。
インストールするモジュールが
足りないのでしょうか、
それとも使用方法が悪いのでしょうか、
ご存知の方がおられましたら、
教えてください。

Class::DBI は perldoc記載の version 0.96


pmファイルを設置したモジュール-----------------------------------------------------

Class::Trigger 0.07; ←0.10をインストール
Class::Accessor
Class::Data::Inheritable
Ima::DBI
List::Util;
UNIVERSAL::moniker;

質問する文字数が限られているので
ここまでしか入力できませんが、
ご存知の方がおられましたら、
ぜひ教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:asakura-t No.1

回答回数151ベストアンサー獲得回数2

ポイント25pt

 どのようにインストールしたのか、また、どのようにうまくいかないかを説明していただけないと、アドバイスしにくいです。

(少なくとも僕は問題なく使えています)


 とりあえずシェルで、


perl -MClass::DBI -e 1


を実行したとき、エラーが出ますでしょうか。

 エラーが出ないようでしたら、モジュールのインストールの問題ではなく、Class::DBIの使い方の問題のような気がします。

id:rakuda_shun

回答ありがとうございます。

perl -MClass::DBI -e 1 を入力したところ、

Can’t locate Class/DBI.pm in @INC(@INC contains: /usr/local/lib/perl5/site_perl/5.8.4/mach /usr/local/lib/perl5/site_perl/5.8.4 /usr/local/lib/perl5/site_perl/5.005 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.4/BSDPAN /usr/local/lib/perl5/5.8.4/mach /usr/local/lib/perl5/5.8.4 .). BEGIN failed--compilation aborted

---------------------------------------

が表示されました。

また、CGI::Carp qw(fatalsToBrowser);を

使用したところ

Can’t locate version/vpp.pm in @INC (@INC contains: ./lib /usr/local/lib/perl5/site_perl/5.8.4/mach /usr/local/lib/perl5/site_perl/5.8.4 /usr/local/lib/perl5/site_perl/5.005 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.4/BSDPAN /usr/local/lib/perl5/5.8.4/mach /usr/local/lib/perl5/5.8.4 .) at lib/version.pm line 22.

Compilation failed in require at lib/Class/DBI.pm line 10.

BEGIN failed--compilation aborted at lib/Class/DBI.pm line 10.

Compilation failed in require at (eval 3) line 3.

...propagated at /usr/local/lib/perl5/5.8.4/CGI/Carp.pm line 314.

BEGIN failed--compilation aborted at lib/SQL.pm line 2.

Compilation failed in require at index.cgi line 5.

BEGIN failed--compilation aborted at index.cgi line 5.

が表示されました。

2005/10/28 16:54:29
id:asakura-t No.2

回答回数151ベストアンサー獲得回数2

ポイント25pt

 Perlモジュールの入っている場所を指定していないのが問題なのではないかと思います。

 スタンダードプランということは自分のディレクトリの下にlibperlなどを作って、その中にPerlのモジュールをインストールしていると思いますので、スクリプトの先頭に


use lib ’/home/accountname/libperl’;


などを記述する必要があるでしょう。

(accountnameやlibperlは環境にあわせて変更してください)

コメントはまだありません

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

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

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

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