You have a point there. The CGI.pm version does look a lot cleaner. For table generation, also, I would probably look into the module in more depth. However, I disagree with the point about debugging. I find that errors in printing the HTML are almost always readily visible. If an attribute isn't correct, you will instantly notice that that header isn't centered, or whatever. A simple view source will generally pinpoint the problem.