http://qs1969.pair.com?node_id=262641

martymart has asked for the wisdom of the Perl Monks concerning the following question:

Fellow Monks, I'm using activestate perl on Windows 2000, following on from a recent post. I'm trying to run the script below, what it should be doing is putting nice output to the browser, and saving an html file on the webserver:
#!/usr/bin/perl use strict; use CGI; my $q = new CGI; open(OUT, '>out.html') || die "Couldn't open out file: $!"; print OUT $q->header, $q->start_html('hello world'), $q->h1('hello world'), $q->end_html; close OUT; END{} __END__
When I browse to this script though I keep getting this error message:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

As well as that, the html file produced on the server looks a bit wacky:

Content-Type: text/html; charset=ISO-8859-1 <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"><head><title>h +ello world</title> </head><body><h1>hello world</h1></body></html>
This cleans up a bit if I comment out the $q->header, But the error message in the browser remains the same. I'd appreciate it if somebody could point out the problem with the script, or another workaround for this problem.
Many Thanks,
Martymart.