In my code, I want to view all data from a CSV in table form, but it only displays the last line. How about lines 1 and 2? Here’s the data:
1,HF6,08-Oct-08,34:22:13,df,jhj,fh,fh,ffgh,gh,g,rt,ffgsaf,asdf,dd,yoawa,DWP,tester,Pattern 2,hf35,08-Oct-08,34:12:13,dg,jh,fh,fgh,fgh,gh,gfh,re,fsaf,asdf,dd,yokogawa,DWP,DWP,Pattern 3,hf35,08-Oct-08,31:22:03,dg,jh,fh,fgh,gh,gh,gh,rte,ffgsaf,asdf,dfffd,yokogawa,DWP,DWP,ghh
Here’s the code:
#! /usr/bin/perl print 'Content-type:text/html\r\n\r\n'; use CGI qw(:standard); use strict; use warnings; my $line; my $file; my ($f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$f10,$f11,$f12,$f13,$f14,$f15,$f16,$f17,$f18,$f19); $file='MyFile.txt'; open(F,$file)||die('Could not open $file'); while ($line=<F>) { ($f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$f10,$f11,$f12,$f13,$f14,$f15,$f16,$f17,$f18,$f19)= split ',',$line; } close(F); print '<HTML>'; print '<head>'; print '<body bgcolor='#4682B4'>'; print '<title>FUSION SHIFT REPORT</title>'; print '<div align='left'>'; print '<TABLE CELLPADDING='1' CELLSPACING='1' BORDER='1' bordercolor=black width='100%'>'; print '<TR>'; print '<td width='12%'bgcolor='#00ff00'><font size='2'>RECORD No.</td>'; print '<td width='12%'bgcolor='#00ff00'><font size='2'>TESTER No.</td>'; print '<td width='12%'bgcolor='#00ff00'><font size='2'>DATE</td>'; print '<td width='13%'bgcolor='#00ff00'><font size='2'>TIME</td>'; print '<td width='11%'bgcolor='#00ff00'><font size='2'>DEVICE NAME</td>'; print '<td bgcolor='#00ff00'><font size='2'>TEST PROGRAM</td>'; print '<td bgcolor='#00ff00'><font size='2'>DEVICE FAMILY</td>'; print '<td width='13%'bgcolor='#00ff00'><font size='2'>SMSLOT</td>'; print '<td width='13%'bgcolor='#00ff00'><font size='2'>DIE LOT</td>'; print '<td width='12%'bgcolor='#00ff00'><font size='2'>LOADBOARD</td>'; print '<td width='12%'bgcolor='#00ff00'><font size='2'>TESTER </td>'; print '<td width='12%'bgcolor='#00ff00'><font size='2'>SERIAL NUMBER</td>'; print '<td width='13%'bgcolor='#00ff00'><font size='2'>TESTER CONFIG</td>'; print '<td width='11%'bgcolor='#00ff00'><font size='2'>SMSLOT</td>'; print '<td bgcolor='#00ff00'><font size='2'>PACKAGE</td>'; print '<td bgcolor='#00ff00'><font size='2'>SOCKET</td>'; print '<td width='13%'bgcolor='#00ff00'><font size='2'>ROOT CAUSE 1</td>'; print '<td width='13%'bgcolor='#00ff00'><font size='2'>ROOT CAUSE 2</td>'; print '<td width='13%'bgcolor='#00ff00'><font size='2'>ROOT CAUSE 3</td>'; print '</tr>'; print '<TR>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f1</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f2</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f3</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f4</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f5</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f6</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f7</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f8</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f9</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f10</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f11</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f12</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f13</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f14</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f15</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f16</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f17</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f18</TD>'; print '<TD bgcolor='#ADD8E6'><font size='2'>$f19</TD>'; print '</tr>'; print '</TABLE>'; print '</body>'; print '<html>';
HTML::Template would make your life a lot easier. Here’s my go with a cut-down template.