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?
In reply to Re^3: Chasing up a module dependency issue
by Corion
in thread Chasing up a module dependency issue
by cLive ;-)
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |