After digging deeper, I found out the issue stems from LWP::Prallel::Protocol::http.
In LWP::Prallel::Protocol::http::connect, it explictly creates IO::Socket::INET when it's in nonblocking mode, this overrides the original https protocol, and effectively disable any https support in nonblocking mode. Consequently, PoCoCl::UserAgent does not support https either. Pete
