in reply to Devel::TraceUse bizarreness

Figured it out... Devel::TraceUse assumes it is the first module in the @INC list:
... { local *INC = [ @INC[ 1 .. $#INC ] ]; my $start_time = [ gettimeofday() ]; eval "package $package; require '$mod_name';"; $elapsed = tv_interval($start_time); } ...
Another approach would be to tie @INC to an array implementation which always puts the coderef used by Devel::TraceUse at the beginning of the array. That is, regardless of whatever array operations you performed on @INC, $INC[0] would always return TraceUse's coderef.

The real solution is to just redefine require if that's possible.