Listing 2: The CGI version of our query program
#!/usr/bin/perl -w
use strict;
use diagnostics;
use Mysql;
use CGI;   # available from http://www.perl.com/CPAN
# Create an instance of CGI
my $query = new CGI;
# Send an appropriate MIME header
print $query->header("text/html");
# Begin the HTML output
print $query->start_html(-title =>
   "Query results");
# Connect via Unix sockets to the database on this 
# server
my $dbh = Mysql->connect;
# Choose a database
$dbh->selectdb("test");
# Send our query
my $sth = $dbh->query(
   "select name,telephone from phone_book");
# Iterate through the returned rows
my @arr = ();
# Create a table for results
print "<table border=3>n;\n";
while (@arr = $sth->fetchrow)
{
    # Begin a new table row 
    print "<tr>\n";
    
    # Print the first element in the first column
    print "<td>$arr[0]</td>\n";
    # Print the second element in the second 
    # column
    print "<td>$arr[1]</td>\n";
    # End the row
    print "</tr>\n\n";
}
# End the table
print "</table>\n";
# End the HTML
print $query->end_html;
exit;