in reply to Constructing HTML tables with CGI.pm

Well, if you want to keep your 'print HTML as one print statement' paradigm, you just Build the content of the table outside of the print statement:
#!/usr/local/bin/perl -w use strict; use CGI; my %host=( 'camel', 'flea', 'frog', 'green'); cgiout(); sub cgiout { my $q= new CGI; my $tablecontent=[$q->th(['key', 'value'])]; for (sort keys %host) { push @$tablecontent, $q->td([ $_, $host{$_} ]) ; } print $q->table( { border => 1, -width => '100%'}, $q->Tr( $tablecontent), ); }
This results in this table:
key value
camel flea
frog green

Update: Removed slightly snide comment open for misinterpretation.

CU
Robartes-

Replies are listed 'Best First'.
Re^2: Constructing HTML tables with CGI.pm
by sravs448 (Acolyte) on Sep 19, 2014 at 13:54 UTC
    Hi, I tried the code you provided. But it didnt print me a table. Below is the output I got.
    <table width="100%" border="1"><tr><th>key</th> <th>value</th></tr> <t +r><td>camel</td> <td>flea</td></tr> <tr><td>frog</td> <td>green</td>< +/tr></table>