in reply to Object in an object

If I understand your problem well, you are trying to implement some form of persistent connections to your database to avoid the start-up cost of fresh connections for every request through your proxy and you are trying to do so at the level of a prepared database statement handle.

But did you consider the fact that HTTP::Proxy can handle multiple request concurrently (it being a forking proxy) and thus you could end up with separate instances of the proxy-code using the same prepared database statement handle? I'm not too sure whether DBI supports that. At the very best, you may be able to share the database handle, but that will save you already the connection cost. The time used to prepare a statement handle is usually very small: many drivers just store the SQL-string and return immediately without doing any real preparation work. All that is part of their execute code.

Try your above code again but just store the $dbh handle in the object and --BTW-- you do not have to store a reference to the database handle in the object, just the database handle itself should do fine.

CountZero

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James