in reply to Speed blues

Perhaps this is obvious, but do you have $| set to 1 in your code? Stdio buffering might cause things to be sent to your browser slowly from the script.

If that's OK, perhaps you should inject some debugging code in key places in your code, printing the time (perhaps making use of Time::HiRes) at each point. See if you can use code like that to find out which part of your script is causing the delay, and narrow it down to the exact event. If you have trouble doing this, see if you can break your script down into the simplest possible case that demonstrates the delay you're seeing and respond to this post with it.

I can't see anything obviously wrong with your code, bot perhaps someone else might... I know it is kinda weird to see ($sth)->finish(); when $sth->finish; would work exactly the same and looks a little cleaner. :)

Good luck.