There is a number of modules on CPAN that already do similar things Ben
> -----Original Message----- > From: Christopher Grau [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, December 17, 2002 12:05 PM > To: [EMAIL PROTECTED] > Subject: Re: AUTOLOAD in mod_perl (was Re: When perl is not quite > fastenough) > > I may be veering off-topic, but I've started doing similar things in my > own code (generating accessor methods via AUTOLOAD). I ended up writing > `Class::Autoload,' which I intend to upload to CPAN when I'm done with > documentation and testing. > > Basically, it exports an AUTOLOAD function that will work with the > %FIELDS hash to insert accessor methods into the symbol table as > needed. There's also a compile() method that can be used to precompile > the methods, which I thought was relevent, given the mod_perl/memory > discussion. It also provides for read-only methods, and a typing system > like that of `Class::Class.' > > If there's interest, I'll clutter up the list some more with the POD. > > On Tue, 2002-12-17 at 11:13, kyle dawkins wrote: > > Perrin (et al... cc'ing this back to the list) > > > > Thanks for this information... it is confirming what I originally > > thought, so I don't need to change my code (yet). But I wanted to post > > it back to the list to everyone else can benefit from it. > > > > I personally tend to avoid AUTOLOAD, only because it is a piece of perl > > "magic" that can be super-confusing to developers coming to perl (and > > mod_perl) from other languages (um, Java) and I think there's a > > voodoo-level involved that's a bit high for my tastes. In the one > > place I use it, I don't generate anything, just trap calls to methods > > with AUTOLOAD and perform a lookup based on the arguments. If it > > really is that slow, maybe I'll even rewrite that to use something > > other than AUTOLOAD. > > > > Cheers! > > > > Kyle Dawkins > > Central Park Software > > > > > > On Tuesday, Dec 17, 2002, at 13:13 US/Eastern, Perrin Harkins wrote: > > > > > kyle dawkins wrote: > > >> Sorry to mail you directly... can you just give me two cents on your > > >> comment below about AUTOLOAD, mod_perl and memory sharing? I use > > >> AUTOLOAD in one module to perform accessors and I wonder if there's a > > >> better way to save memory. > > > > > > AUTOLOAD is kind of slow, so most people put something in there to > > > define their accessors as subs by manipulating the symbol table. It's > > > easy, and Damian's book has an example. > > > > > > In mod_perl, you want any methods that you expect to be called to be > > > defined in the parent process so they will be shared. I do this by > > > building all of the accessors in a BEGIN block in my module which is > > > called when I use it in startup.pl. > > > > > > - Perrin > > >