Any luck with the debugger?
Not as yet. The control flow through IO::Socket::SSL's constructor appears to be rather baroque, and I'm having rather a hard time following what's going on. (I'm not very comfortable with debuggers at the best of times. They never seem to want to tell you what you really need to know. In this case, I probably mostly want what Carp would tell me if called from right before the innermost return, but I haven't managed to successfully identify said innermost return.)
I am seriously considering switching to a different module. Perhaps I might also contemplate moving from HTTPS to SSH while I'm at it. I have never had a great deal of fondness for HTTPS, particularly in terms of how it handles certificates.