【Perl】DBI object version 1.58 does not match $DBI::VERSION 1.53 at C:/xampp/perl/lib/DynaLoader.pm line 252.

BEGIN failed--compilation aborted at C:/xampp/perl/site/lib/DBI.pm line 259.
というエラーはどう回避すれば良いのでしょうか?

Windows XP SP-2
Perl 5.8.8

実行スクリプトは
use DBI; # これだけでエラー発生
__END__

回答の条件
  • 1人5回まで
  • 登録:2008/05/06 23:40:41
  • 終了:2008/05/07 11:45:38

ベストアンサー

id:toohigh No.1

toohigh回答回数291ベストアンサー獲得回数372008/05/07 06:37:44

ポイント60pt

エラーメッセージからすると、DBIのバージョン不整合(DBI.pm のバージョンとそこから呼ばれるDLLのバージョンが一致していない)が原因のようです。

  • perl バージョンアップの際に古いものが残っている可能性があるので、一旦きれいにアンインストールしてから入れなおす
  • カレントディレクトリに使いたい perl と違うバージョンの DLL がある場合、他のディレクトリに cd してからスクリプトを実行するなり、カレントディレクトリのバージョン違いな DLL を消す
  • カレント以外からの読み込みが原因の場合、PERL5LIB 環境変数を適切に設定する

ちなみに、利用されている perl は xampp の perl-5.8.8 だけ、でしょうか。xampp の場合、関連する apache のバージョンにより複数のパッケージがあるようですので、その辺も書いておくと何かヒントが得やすいかもしれません。

id:thwd

確かに古いsite/libを上書きコピーしたことがあります。

xampp 1.6.6a

再インストールしてみます。

ありがとうございました。

2008/05/07 10:41:32

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません