in reply to any way to control a memory leak
Oracle can be pretty buggy. I had a similar situation with my 8i setup.
First, I am assuming that you are doing an $sth->finish on your cursors when you are done with them. If not, please do. Next, do a select * from v$open_cursors to see if you are hanging on to any cursors (the symptom is that it gobbles up CPU and Memory). I am still unable to figure out why one of my scripts causes cursors to stay open even after explicitely closing them AND destroying the $dbh when finished.
If this is happening on Oracle 8i, you should probably consider downgrading to Oracle 8.0.
I like chicken.