in reply to Help on String manipulation

You made a number of mistakes in your HTML. For instance, you say the type is text/html, yet you don't have an html tag at all. You also don't say what size the border is supposed to be. And you don't define a background color (some browsers default to grey, which isn't pretty). Maybe you want something more like:
print <<OUT; Content-Type: text/html <html> <head> <title> DEEEalers </title> </head> <body bgcolor="#FFFFFF"> <h1> Dealers Listing</h1> <table border="1"> <tr><th>surname</th><th>given</th><th>suburb</th><th>postcode</th></tr +> OUT open (NAMES, "/var/www/cgi-bin/data/dealers.txt"); while (<NAMES>) { next if !m/^B/; chomp; print "<tr><td>", join ("</td><td>", (split /[,\s]+/, $_)[0..3]), +"</td></tr>\n"; } close (NAMES); print <<OUT; </table> </body> </html> OUT
I suggest figuring out what all of this does and rewriting it in your own format, rather than copying it verbatim. Your teacher might check here, who knows.