Mac(Lion)にてmecabとPerl用のモジュールをインストールし、ターミナルでmecab単体で動くことを確認し、その後またターミナルでPerlで書かれたサンプルコードを読み込み、動くことを確認しました( perl perltest.pl )。
そしていよいよapache上で動かそうと思ったのですが( perltest.cgi)、apacheでウェブアプリケーションとして動かそうとしてもMeCab.pmを読み込んでくれません。失敗してエラーになります。
apacheのコンソールを見るとCan't locate MeCab.pm in @INCとなっているので場所がわからない状態なのかと思います。use mecabをコメントアウトするとちゃんと動くので、間違いなく原因はここかと思います。
ターミナル上と違い、Perlのモジュールをapacheで動かす場合は何か設定が必要なのでしょうか。
おそらく apache の実行ユーザで、perl モジュールのサーチパスが、設定されていないのだと思います。
perl プログラムの中で、モジュールを呼び出す前に 'use lib' することで、perl モジュールのサーチパスを追加することが出来ますので、以下のようにプログラムを追加してください。
~略~
use lib 'Perl モジュールのディレクトリ';
use MeCab;
~略~
最後に use lib のドキュメントのURL を書いておきます。
http://search.cpan.org/~smueller/lib-0.63/lib_pm.PL
ご回答ありがとうございます!
2012/05/11 14:42:14おっしゃるとおりuse lib してみたんですが、変わらないです。根本的に何かがおかしいのか・・・。
2日間悩んで結局phpの方を利用することにしました。こちらならうまくいきました。申し訳ないです。