Why use prepare_cached?
It is mainly of use when you have a few statements, that you execute often, but where you are
unable to hold a reference to the $sth.
I've never yet been unable to hold a reference, you can
store them in package variables or closures. I'd say its more
for when its inconvienient to store the handle, so you
lazily decide to let DBI do it for you :)
And I've seen this happen occasionally when people have
hashes of column names and values which is when this solution
is usually ideal.