Thanks for the tips. For the record, it turned out that the "leak" wasn't really a leak at all: we have a *large* directory structure in which each directory was using as its index file a symlink to the same perl file (which in turn used the REQUEST_URI to figure out what content to serve). Apparently mod_perl treats each of those as a separate file, so it was caching thousands of copies of the same file over time.
The reason I didn't find this sooner is that I had been testing that index file via only a handful of URIs, and thus didn't see the memory usage grow. Once I turned to `wget -r', the "leak" finally surfaced. I fixed it by converting the index file to a real mod_perl handler and pointing the right URIs at it manually in httpd.conf. Sorry for the extra noise, but I figured the info might be useful to somebody. Thanks again, guys. -Michael