人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

さくらサーバーの
スタンダードプランのサーバーで、
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;

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

●質問者: rakuda_shun
●カテゴリ:コンピュータ
✍キーワード:CGI Class Class::DBI CPAN DBI
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 浅倉卓司
●25ポイント

http://perldoc.jp/docs/modules/Class-DBI-0.96/lib/Class/DBI.pod

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

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


とりあえずシェルで、


perl -MClass::DBI -e 1


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

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

◎質問者からの返答

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

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.

が表示されました。


2 ● 浅倉卓司
●25ポイント

http://dummy/

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

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


use lib ’/home/accountname/libperl’;


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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ