It seems to me that normal OO programming practice dictates that when you return an object of type $x, that all the methods that you might want to call against $x are also loaded.
However, repeatedly during today's experiments, I find myself running my code, then having to go back and add "use This" or "use That" just to make it work. For exmaple, $r is an Apache2::RequestRec that was just handed to me. Why do I then need to add "use Apache2::RequestRec" just to be able to *do* anything with it? When would it ever be useful *not* to have loaded that? What am I going to do, just let it sit in memory? And then, some of the methods that a RequestRec can do aren't defined there, but in RequestUtil. Argh. Stop the madness. It'd be great if there was one documented place cross referencing all the methods I might want to call against $r, but no... those are also spread out. Why is this design so sideways? -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/> Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!