in reply to curl to perl POST

'data' => {"message":"Test message"}

Use the 'Content' key as specified in the documentation for post if you want to supply the content in this way. 'data' is not a special key. Also, don't supply the content as a hashref - use a string instead just like you did with the curl command.