WindowsでText::MeCabを使う
インストール時に聞かれるコンパイルオプションはプロンプトに出るサンプルのパスを変えるだけでよい。
いざ使おうとするとエラーになる。
Can't load 'path/to/perl/site/lib/auto/Text/MeCab/MeCab.dll' for module Text::MeCab: load_file:指定されたモジュールが見つかりません。 at path/to/perl/lib/XSLoader.pm line 68.
Dependency Walker で確認すると LIBMECAB.DLL が未解決*1。要は MeCab にパスが通っていないと駄目らしい。notest install しなかったらインストールも失敗していたのだろうか?
とはいえいちいちパスを通しておく気はないので、環境依存になるがソースレベルで解決してみる。
$ENV{PATH} .= ';path/to/MeCab/bin' if ($ENV{OS} =~ /^Win/); require Text::MeCab;
use する場合は BEGIN ブロックに書けばいい。
BEGIN { $ENV{PATH} .= ';path/to/MeCab/bin' if ($ENV{OS} =~ /^Win/); } use Text::MeCab;