$ perldoc CGI |grep -i xhtml -C1 -no_xhtml By default, CGI.pm versions 2.69 and higher emit XHTML (http://www.w3.org/TR/xhtml1/). The -no_xhtml pragma disables this feature. Thanks to Michalis Kabrianis for this -- If start_html()'s -dtd parameter specifies an HTML 2.0, 3.2, 4.0 or 4.01 DTD, XHTML will automatically be disabled without needing to use this pragma. -- The -encoding argument can be used to specify the character set for XHTML. It defaults to iso-8859-1 if not specified. -- Otherwise it will be replaced by the default DTD. If the public DTD contains 'XHTML', CGI.pm will emit XML. The -declare_xml argument, when used in conjunction with XHTML, will put a declaration at the top of the HTML header. The sole purpose of -- action: this script enctype: application/x-www-form-urlencoded for non-XHTML multipart/form-data for XHTML, see multipart/form-data below. -- If XHTML is activated (the default), then forms will be automatically created using this type of encoding. -- The start_form() method uses the older form of encoding by default unless XHTML is requested. If you want to use the newer form of encoding by default, you can call start_multipart_form() instead of start_form().