You probably may want to know that the later version of CGI does support XForms Model POST, both as application/xml and as multipart/related. When you do such a post, the XML is available through the query param XForms:Model. As in CGI.pm
# Process XForms postings. We know that we have XForms in the
# following cases:
# method eq 'POST' && content-type eq 'application/xml'
# method eq 'POST' && content-type =~ /multipart\/related.+start
# There are more cases, actually, but for now, we don't support
# methods for XForm posts.
# In a XForm POST, the QUERY_STRING is parsed normally.
# If the content-type is 'application/xml', we just set the para
# XForms:Model (referring to the xml syntax) param containing th
# unparsed XML data.
# In the case of multipart/related we set XForms:Model as above,
# the other parts are available as uploads with the Content-ID a
# the key.
# See the URL below for XForms specs on this issue.