I know this topic has been discussed to death, but I think I can add something new. :-) Upon using Apache::RegistryLoader, I noticed my error logs started filling up with the dreaded "subroutine redefined" error. These errors occur at the moment my scripts scripts are preloaded using Apache::RegistryLoader. I put together a minimalistic example to demonstrate the problem. Consider the following module where function "foo" is exported by default and "bar" is exported on request. ############################### package Foo; use strict; use vars qw(@ISA @EXPORT @EXPORT_OK); use Exporter (); @ISA = ('Exporter'); @EXPORT = qw(foo); @EXPORT_OK = qw(bar); sub foo { return "foo"; } sub bar { return "bar"; } 1; ############################### And consider the following script served by Apache::Registry: ############################### #!/usr/bin/perl -w use strict; use CGI (); use Foo (); # works okay, no error #use Foo; # causes "Subroutine foo redefined..." error #use Foo qw(bar); # causes "Subroutine bar redefined..." error #use Foo qw(:DEFAULT bar); # causes errors for both foo and bar my $q = CGI->new(); print $q->header(); print "Hello World\n"; ############################### I tried the above script while "use"-ing Foo using the above techniques (stopping and starting the server each time to retest Apache::RegistryLoader.) Upon each server start, RegistryLoader kicked out the error(s) shown commented above. So it seems to be the import process causing the error. In all cases, the Apache::Registry script works fine. The error only appears when the script is preloaded using Apache::RegistryLoader -- I can suppress the error by not using RegistryLoader. So what's causing the error? Why is the subroutine being redefined? Thanks, Matt apache 1.3.6 mod_perl 1.21 perl 5.00503 Apache::Registry 2.01 Apache::RegistryLoader 1.90