mostly cause
require docs use the
eval "require DBI" form as an example, and so i was pretty confident that would work w/o trying it, and the critical piece for OP was to remove the load-time 'use' call .. i also vauguely remember having problems once doing a
eval "use Foo" once but really can't remember what (possibly {probably??} totally unrelated .. was a load order issue maybe??) .. so, in summary, no real good reason :)