Thinking about it, this only creates a copy of the reference and not a copy of the underlying hash...
Looks like I need to utilise something like Clone instead.
just save+restore 'headers' and its value as a ref, this is the only key being deleted, no need to clone. To deal in the longterm perhaps create your own post_form() which will restore the 'headers' key. That HTTP::Tiny behaviour is quite weird. I avoid to mess with user parameters unless i document it.