?

Log in

No account? Create an account

Wed, Feb. 2nd, 2005, 12:00 pm
Module::Pluggable

... which had a tiny but significant bug to do with running under tests.

Richard Clamp diagnosed a problem as being due to the fact that we exclude anything not from blib if there was blib.pm is in %INC.

    my @SEARCHDIR = exists $INC{"blib.pm"} ? grep {/blib/} @INC : @INC;

Of course if the module being tested used another module that used Module::Pluggable then the second module would fail because none of its plugins would work either..

So, fixed it by checking to see if the caller had (^|/)blib/ in their filename.

    my $filename = (caller)[1];
    my @SEARCHDIR = exists $INC{"blib.pm"} && $filename =~ m!(^|/)blib/! ? 
                    grep {/blib/} @INC : @INC;

Which seems to fix everything.