- ベストアンサー
activeperlでDBD-Pgを扱うと、perlが強制終了する
まず環境です。 -----[os環境]---------------- windows xp sp2 -----[active perlバージョン]- This is perl, v5.8.7 built for MSWin32-x86-multi-thread -----[cpan環境]-------------- ppm> properties DBI ppm> properties DBD-Pg で結果表示あり(インストール済みと判断) -----[PostgreSQLの環境]------ psql -U postgres -h localhost bookmark ユーザ postgres のパスワード:postgres ログイン可能でDB環境正常と判断。 の環境で、以下のスクリプトを実行すると、perlが強制終了します。 ------[test.pl]-------- #! /usr/bin/perl use DBI; $dbname = "worple"; $user = "postgres"; $passwd = "postgres"; $host = "localhost"; #DBオープン $db = DBI->connect("DBI:Pg:host=$host;dbname=$dbname", $user, $passwd) || die "DBI connect failed : $DBI::errstr"; #DBクローズ $db->disconnect; 1; ---------------- エラーメッセージがでることもなく、googleでも似た症状を探せないでいます。 何かヒントや、参考のURLでもいいのでお教え下さい。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
お礼
ありがとうございます!解決しました。 ならびに、guci-okさんもありがとうございます。 >こちらのActivePerlは 5.8.8(Build819)ですが こちら、どうしてもパスに日本語を入れなければならなく、 どうやらPPM4ではパスにマルチバイト文字が入ると動かないバグが あるらしく、PPM3である、5.8.7パックにしています。 PPMのバージョンも書けばよかったかな? >No2の回答にあるPgFoundryから >DBD-Pg-1.49-5.8s.tar.gz >を落として試してください。 全てuninstallして、再度installしたのですが、 ほぼコレが解決の決め手でした。 OpenSSLのライブラリが無いのが原因なのか、5.8バージョンではなく5.6用 を入れてしまったのが原因か、今では解りません、、、、 私の様にへっぽこな人用にinstallの手順を書いておきます。 (http://pgfoundry.org/projects/dbdpgppm/を rep addしてしまう馬鹿も要るかもしれませんから。私の事です。笑) ------- [1]ダウンロード http://pgfoundry.org/projects/dbdpgppm/から DBD-Pg-1.49-5.8s.tar.gz DBD-Pg-5.8s.ppd をダウンロードし、適当にフォルダを作り保存します。 [2]インストール cd c:\xxxx C:\xxxx>ppm install DBD-Pg-5.8s.ppd できあがり。