> > Anyway, what you should do is create a constructor: > > > > sub new { [snip] > > You mean like this code segment that I included in my original post > just below the handler code :) > > sub init { [snip] Ah yes, but you called your's "init", which is quite misleading to those of us who tend not to pay attention. > Wait a second. I have a startup.pl, and inside that I have the lines: > > use Exchange::Account::My; > my $account_interface = Exchange::Account::My->init; > > Won't that do what I need it to do? When the root process forks off > children, won't a complete copy of $account_interface go with it, with > everything all set and ready to go? > I wouldn't think that this would be the case, but I may be mistaken. Since you've declared $account_interface with 'my', that variable should only be available within the scope of the startup.pl script. Even if you went with use vars qw($account_interface); I still don't think that it would be available in the Exchange::Account::My namespace. > Except for calling the contructor with every call of the handler, > I think I've done everything right. Isn't the part of idea behind > mod_perl handlers that one _doesn't_ have to call the contructor > _every_ time the handler gets called? Otherwise invites massive > overhead. Is a bless really massive overhead? I can't say as I've ever had a problem calling the constructor with every request (at least with simple objects). > Obviously, what I'm doing doesn't work. But could someone show me > how to call the constructor just once in in a childs lifetime? startup.pl is not the place to do this - it gets called at server start-up (or restart), not child initialization. What you could do is create a ChildInitHandler for this class, which sets a global variable within your package: use vars qw($SELF); sub configure { my ($class) = shift; Apache->push_handlers( PerlChildInitHandler => sub { # use that weird "init" constructor name $SELF = $class->init(@_); } ); } You can then change your handler to not use the $$ prototype, but get an object reference from $SELF: sub handler { my $q = shift; my $self = $SELF; # the rest of your code as is... } In your startup.pl, you'd have: use Exchange::Account::My; Exchange::Account::My->configure(); I haven't tested that. As I said, I've never had call to create the object only upon child initialization. I'll be the first to admit that I'm relatively new to the mod_perl thing, so there may be an easier or more elegant way to do this, but that ought to work. Hope that helps. Chris