in reply to AnyEvent::HTTP not sending ContentLength ?

The docs for AnyEvent::HTTP (which I haven't used) show the headers being passed in to http_request() as a reference to a hash, not the hash itself. Try:

my $headers = { Content-Length => 2345, }; http_request 'PUT' => $url, 'headers' => $headers, ...

I can't see a simple way to turn on tracing in AnyEvent::HTTP either, which isn't helping my debugging.

Maybe setting $ENV{ PERL_ANYEVENT_VERBOSE } see

The way forward always starts with a minimal test.