in reply to Re^2: Chasing up a module dependency issue
in thread Chasing up a module dependency issue

What you describe shouldn't happen, for the reasons you describe as well. Maybe the unit tests do something weird, or maybe you use use_ok, which can fail (for example due to a syntax error) but the test script itself will continue with a half-compiled module. I fear that this is not really debuggable from afar and mostly tied to your specific source code situation at work...

Maybe putting a callback into @INC allows you to debug what modules get loaded when, to narrow down the files after which problematic things happen:

push @INC, sub { print "Loading @_\n"; return () };

Maybe one of the modules contains a (second) package declaration that matches one found earlier and overwrites something in another package?