Well, I've got a working version of Net::SCP::Expect already made today. I wrote this out of irritation more than anything else.
I need to work on the error checking at the moment (how do I know if it didn't like the cipher, for example?). Right now, assuming you've provided a host, login and password, if there's any kind of problem it will always give you a timeout error, no matter what the "real" error is.