http://www.perlmonks.org?node_id=759633


in reply to Re^2: 'use' falls out of scope at runtime
in thread 'use' falls out of scope at runtime

use called a second time doesn't reload the module, since it checks %INC (see perlvar) and, if the module is already in that hash, the underlying require just returns 1, so no loading. You would have to undef $INC{$module} for the use to reload the module. Keep in mind that in %INC the key for Some::Module is Some/Module.pm.

Aa Corion said, you could use Apache::Reload for those packages; if you have changing packages where methods/functions are organized into files, you could use AutoReloader.