FindBin::libsがCygwinで動かない
追記(2008/01/15)
1.36で修正されたようです。
1.36 Sun Jan 13 22:37:46 EST 2008
Add eval for abs_path, apparently Cygwin's abs_path
croaks when the path doesn't exist (vs. simply
returning undef). Fix is to eval the abs_path
calls.
http://search.cpan.org/src/LEMBARK/FindBin-libs-1.36/CHANGES
use FindBin::Bin; use lib "$FindBin::Bin/../lib";
とかの代わりに
use FindBin::libs
みたいに書ける便利モジュールなので気に入ってたんだけどCygwinだとテストが通らないようです。
t/01....NOK 1# Tried to use 'FindBin::libs'. # Error: /home/t-ono/temp/FindBin-libs-1.35/t/lib: No such file or directory at /home/t-ono/temp/FindBin-libs-1.35/blib/lib/FindBin/libs.pm line 176
のようなエラーが出ます。
どうやらCygwinのPerlでCwdのabs_pathって関数に存在しないパスを渡すと
No such file or directory
とか言ってdieしてしまうようです。
試しにFedora Core 6で試してみたら存在しないパスでもdieせず、渡したパスがそのまま返ってきました。
CPAN Testersを見てもCygwinだとやっぱりFAILしてます。
http://cpantesters.perl.org/show/FindBin-libs.html#FindBin-libs-1.35
ソースを見るとちゃんとevalしてる所もあったりしてなんだかよくわかりません。
とりあえずevalしないでabs_pathを呼んでるところをevalで囲んだりしてdieだけはしないようにしてみました。
もどかしいです。