http://www.perlmonks.org?node_id=916818


in reply to perl generated table - format color

As you loops through your data, you need to determine if a given row contains the "OCOMsg2" field you're looking for, and if it does write out the following:

<tr style="color: red;">

Otherwise, just write out a plain tr tag with no style attribute. You need to do this before splitting the row into individual parts - or else use join to put them back together in order to do the check. Something like this:

use strict; my @stat_array = ( "ibfarm102 - localtick", "Boston" , "hibmis100 - procHKHD2 - Hongkong", "PidMonRsp", "eufarm102 - localtick", "London", "hibmis100 - procHKHD2 - Hongkong", "PidMonReq", "ibfarm102 - localtick", "New York", "hibmis100 - procHKHD2 - Hongkong", "PidMonRsp", "ibfarm102 - localtick", "New York", "hibmis100 - procHKHD2 - Hongkong", "OCOMsg2" ); while (my @group_of_4 = splice(@stat_array, 0 , 4)) { my $rowstring = join(' ', @group_of_4); if ($rowstring =~ /OCOMsg2/) { print MAIL "<tr style=\"color: red;\">\n"; } else { print MAIL "<tr>\n"; } for my $data (@group_of_4) { print MAIL "<td>$data</td>\n"; } print MAIL "</tr>\n"; }

I get this output:

<tr> <td>ibfarm102 - localtick</td> <td>Boston</td> <td>hibmis100 - procHKHD2 - Hongkong</td> <td>PidMonRsp</td> </tr> <tr> <td>eufarm102 - localtick</td> <td>London</td> <td>hibmis100 - procHKHD2 - Hongkong</td> <td>PidMonReq</td> </tr> <tr> <td>ibfarm102 - localtick</td> <td>New York</td> <td>hibmis100 - procHKHD2 - Hongkong</td> <td>PidMonRsp</td> </tr> <tr style="color: red;"> <td>ibfarm102 - localtick</td> <td>New York</td> <td>hibmis100 - procHKHD2 - Hongkong</td> <td>OCOMsg2</td> </tr>

If that's not what you want - hopefully it's enough to get you going in the right direction.