What ikegami said is correct. Running the script from the command line will display the Content-Type line. When you run the script in a web browser that line is used by the browser to know what type of content it should display, i.e. text/html, and the rest of the output renders in this format.
So everything is working alright :)
You can alter the Content-Type (using the header_add or header_props methods of CGI::Application) to other kinds, e.g. application/pdf or text/csv or whatever you like, and your web browser will react accordingly, i.e. either render the output in the browser, or ask you to save the file, or launch the application used to view that kind of file. Because the default Content-Type is text/html your web browser displays the subsequent output as a web page. Here's one page that lists a lot of Content Types (also known as MIME Types):