in reply to reloading of module

My idea was to undefine the subroutines in the modules ... and then re-require the module.

This is a fine idea, but if you look in perldoc -f require, you'll see that require keeps track of what it has loaded already, and will not load something it already has.

You can get around this behavior by deleting the entry in %INC for that filename. For example:

# in Foo.pm print "foo\n"; # in test.pl require "Foo.pm"; delete $INC{"Foo.pm"}; require "Foo.pm";