Tags: exclude

diesel, learning, evil, sweeti


... 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.