Try HTTP::Tiny as generic HTTP transport for Net::Ethereum
HTTP::Tiny
module has Keep-Alive
available out-of-the box, so consider to use is as generic HTTP transport for Net::Ethereum.
It's well documented and hosted on Gitlab: https://gitlab.com/jjatria/http-tiny.
I went through the source base and it looks human-readable stylish.