The following simple piece of code works fine as it is but looks very messy compared to how it can be done in other languages. I first tried to write it as two simple if statements and one lump of formatting code, but the values generated within the if statements were not recognized outside the if condition. I also tried using a subroutine but this didn't seem to work ether. I've done more complicated thing than this before but just can't seem to get it working any better way. I tried using our instead of my when declaring the variables, and it didn't seem to like the use strict command. Am I doing something stupid? Can anybody help? print "Content-type: text/html\n\n"; use CGI; my $q = new CGI; my $Lob = $q->param( "Lob" ); print <<HTML_SCRIPT1; <HTML> <HEAD> <TITLE>On-Line Projects Pipeline Search:</TITLE> </HEAD> <BODY> <H1><u>Project Management $Lob Pipeline:</u></H1> <FONT SIZE=2> <CENTER> <TABLE BGCOLOR="white" BACKGROUND="/images/graygrid.gif" BORDER="0" BORDERCOLORLIGHT="#FFFFF0" BORDERCOLORDARK="#707070" CELLSPACING="0" CELLPADDING="5" WIDTH=%100> <TR BGCOLOR="black"><TD><B><CENTER><FONT COLOR="white">LOB</FONT></CENTER></B></DT><TD><B><CENTER><FONT COLOR="white">Product Program</FONT></CENTER></B></TD><TD><B><CENTER><FONT COLOR="white">Project</FONT></CENTER></B></TD><TD><B><CENTER><FONT COLOR="white">3rd Year Incremental</FONT></CENTER></B></TD><TD><B><CENTER><FONT COLOR="white">3rd Year Cannabalised</FONT></CENTER></B></TD><TD><B><CENTER><FONT COLOR="white">3rd Year Protected</FONT></CENTER></B></TD><TD><B><CENTER><FONT COLOR="white">1st Year Cost</FONT></CENTER></B></TD><TD><B><CENTER><FONT COLOR="white">Ready to Ship Date</FONT></CENTER></B></TD></TR> HTML_SCRIPT1 my @rawsql = "*"; if ($Lob eq 'All') { use DBI; my $dbh = DBI->connect('dbi:ODBC:projects', 'test',''); my $sql = "select * from pipeline where History = 'Current' order by LOB, ProgramType"; my $sth = $dbh->prepare($sql); $sth->execute(); while (@rawsql = $sth->fetchrow_array()) { print "<tr>"; if ($rawsql[1] eq 'ATOM'){ print "<TD BGCOLOR=\"red\" onClick=\"alert('ATOM')\"> </TD>"; } if ($rawsql[1] eq 'Industrial'){ print "<TD BGCOLOR=\"magenta\" onClick=\"alert('Industrial')\"> </TD>";} if ($rawsql[1] eq 'Commercial'){ print "<TD BGCOLOR=\"yellow\" onClick=\"alert('Commercial')\"> </TD>";} if ($rawsql[2] eq 'Tactical'){ print "<TD BGCOLOR=\"green\" onClick=\"alert('Tactical')\">" . join("", $rawsql[3]) . "</TD>";} if ($rawsql[2] eq 'Strategic'){ print "<TD BGCOLOR=\"darkgreen\" onClick=\"alert('Strategic')\">" . join("", $rawsql[3]) . "</TD>";} if ($rawsql[2] eq 'Maintanance'){ print "<TD BGCOLOR=\"lightgreen\" onClick=\"alert('Maintanance')\">" . join("", $rawsql[3]) . "</TD>";} if ($rawsql[4] eq 'A'){ print "<TD BGCOLOR=\"lightclyne\" onClick=\"alert('Category A Project')\">" . join("", $rawsql[5]) . "</TD>";} if ($rawsql[4] eq 'B'){ print "<TD BGCOLOR=\"yellow\" onClick=\"alert('Category B Project')\">" . join("", $rawsql[5]) . "</TD>";} if ($rawsql[4] eq 'C'){ print "<TD BGCOLOR=\"lightblue\" onClick=\"alert('Category C Project')\">" . join("", $rawsql[5]) . "</TD>";} if ($rawsql[6] eq '0'){ print "<p onClick=\"alert('Phase 0 Project')\"><TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq '1'){ print "<p onClick=\"alert('Phase 1 Project')\"><TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq '2'){ print "<p onClick=\"alert('Phase 2 Project')\"><TD BGCOLOR=\"magenta\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"magenta\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"magenta\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"magenta\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"magenta\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq '3'){ print "<p onClick=\"alert('Phase 3 Project')\"><TD BGCOLOR=\"clyne\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"clyne\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"clyne\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"clyne\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"clyne\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq 'In Production'){ print "<p onClick=\"alert('Project In Production')\"><TD BGCOLOR=\"green\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"green\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"green\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"green\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"green\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq 'Special Project'){ print "<p onClick=\"alert('Special Project')\"><TD BGCOLOR=\"white\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"white\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"white\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"white\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"white\">" . join("", $rawsql[11]);} if ($rawsql[6] eq 'Dead project'){ print "<p onClick=\"alert('Dead Project')\"><TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[11]);} print "</tr>"; } } if ($Lob ne 'All') { use DBI; my $dbh = DBI->connect('dbi:ODBC:projects', 'test',''); my $sql = "select * from pipeline where LOB = '$Lob' and History = 'Current' order by LOB, ProgramType"; my $sth = $dbh->prepare($sql); $sth->execute(); while (@rawsql = $sth->fetchrow_array()) { print "<tr>"; if ($rawsql[1] eq 'ATOM'){ print "<TD BGCOLOR=\"red\" onClick=\"alert('ATOM')\"> </TD>"; } if ($rawsql[1] eq 'Industrial'){ print "<TD BGCOLOR=\"magenta\" onClick=\"alert('Industrial')\"> </TD>";} if ($rawsql[1] eq 'Commercial'){ print "<TD BGCOLOR=\"yellow\" onClick=\"alert('Commercial')\"> </TD>";} if ($rawsql[2] eq 'Tactical'){ print "<TD BGCOLOR=\"green\" onClick=\"alert('Tactical')\">" . join("", $rawsql[3]) . "</TD>";} if ($rawsql[2] eq 'Strategic'){ print "<TD BGCOLOR=\"darkgreen\" onClick=\"alert('Strategic')\">" . join("", $rawsql[3]) . "</TD>";} if ($rawsql[2] eq 'Maintanance'){ print "<TD BGCOLOR=\"lightgreen\" onClick=\"alert('Maintanance')\">" . join("", $rawsql[3]) . "</TD>";} if ($rawsql[4] eq 'A'){ print "<TD BGCOLOR=\"lightclyne\" onClick=\"alert('Category A Project')\">" . join("", $rawsql[5]) . "</TD>";} if ($rawsql[4] eq 'B'){ print "<TD BGCOLOR=\"yellow\" onClick=\"alert('Category B Project')\">" . join("", $rawsql[5]) . "</TD>";} if ($rawsql[4] eq 'C'){ print "<TD BGCOLOR=\"lightblue\" onClick=\"alert('Category C Project')\">" . join("", $rawsql[5]) . "</TD>";} if ($rawsql[6] eq '0'){ print "<p onClick=\"alert('Phase 0 Project')\"><TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"lightclyne\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq '1'){ print "<p onClick=\"alert('Phase 1 Project')\"><TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"darkmagenta\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq '2'){ print "<p onClick=\"alert('Phase 2 Project')\"><TD BGCOLOR=\"magenta\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"magenta\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"magenta\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"magenta\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"magenta\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq '3'){ print "<p onClick=\"alert('Phase 3 Project')\"><TD BGCOLOR=\"clyne\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"clyne\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"clyne\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"clyne\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"clyne\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq 'In Production'){ print "<p onClick=\"alert('Project In Production')\"><TD BGCOLOR=\"green\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"green\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"green\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"green\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"green\">" . join("", $rawsql[11]) . "</TD></p>";} if ($rawsql[6] eq 'Special Project'){ print "<p onClick=\"alert('Special Project')\"><TD BGCOLOR=\"white\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"white\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"white\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"white\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"white\">" . join("", $rawsql[11]);} if ($rawsql[6] eq 'Dead project'){ print "<p onClick=\"alert('Dead Project')\"><TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[7]) . "</TD><TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[8]) . "<TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[9]) . "<TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[10]) . "<TD BGCOLOR=\"black\"><FONT COLOR=\"white\">" . join("", $rawsql[11]);} print "</tr>"; } } print <<HTML_SCRIPT2; </TABLE> <HR> <p align="center"><a href="http://uk07_comp92/ProjectsDB/html/default.html">BACK</a></p> </BODY> </HTML> HTML_SCRIPT2 $sth->finish(); $dbh->disconnect;