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


FindBin-libs-1.35 - Locate and 'use lib' directories along the path of $FindBin::Bin to automate locating modules. Uses File::Spec and Cwd's abs_path to accomodate multiple O/S and redundant symlinks. - metacpan.org

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

のようなエラーが出ます。


どうやらCygwinPerlで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だけはしないようにしてみました。

もどかしいです。