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

sdyates has asked for the wisdom of the Perl Monks concerning the following question:

I wrote this code to read an excel csv file with five records per line. However, the <tr> shows up at the beginning of the output file and the </tr> shows up at the end. I want to get them to show up at the beginning and end of each line. Is the probem with my CSV or my code. I can't see straight anymore :(
use CGI qw(:standard); use strict; use warnings; my $line; my $file; my ($f1,$f2,$f3,$f4,$f5); my $output = "new.htm"; open (OUTPUT, ">$output") or die "Cannot open $output"; my $z=0; $file='irregular-verbs.csv'; open(F,$file)||die("Could not open $file"); while ($line=<F>) { print OUTPUT "<tr>"; my @cells= split ',',$line; foreach my $cell (@cells) { print OUTPUT "<td>$cell</td>"; } print OUTPUT "</tr>"; } close(F);
First few lines of the OUTPUT file.
<tr><td>Base Form</td><td>Past Simple</td><td>Past Participle</td><td> +3rd Person Singular</td><td>Present Participle / Gerund Abide</td><td>Abode/Abided</td><td>Abode/Abided/Abidden</td><td>Abides +</td><td>Abiding Aby/Abye</td><td>Abought</td><td>Abought</td><td>Abys/Abyes</td><td>Ab +ying Alight</td><td>Alit/Alighted</td><td>Alit/Alighted</td><td>Alights</td +><td>Alighting Arise</td><td>Arose</td><td>Arisen</td><td>Arises</td><td>Arising Awake</td><td>Awoke</td><td>Awoken</td><td>Awakes</td><td>Awaking
Thanks for your help!