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.