in reply to Re^4: How to use cgi table in index.pm perl
in thread How to use cgi table in newindex.pm perl

You may find it helpful to add this line to your index.pl script while debugging. Remove it when all the errors have been fixed

use CGI::Carp 'fatalsToBrowser';

Using CGI

package newindex; use strict; use CGI ':standard'; sub getTitle { return "workers"; } sub getContent { my $cgi = shift; my $hashref = { 'Adam' => 'Eve', 'Clyde' => 'Bonnie', }; my @rows; push @rows,th(['Column 1', 'Column 2',]); for (sort keys %$hashref){ push @rows,td([$_ , $hashref->{$_}]) } return table({ -border => 1 }, caption('My Table 1'), Tr({-align=>'center',-valign=>'top'}, \@rows ) ); } 1;

Or better using Template

package newindex; use strict; use Template; sub getTitle { return "workers"; } sub getContent { my $cgi = shift; my $hashref = { 'Adam' => 'Eve', 'Clyde' => 'Bonnie', }; my %data=(); $data{'header'} = ['Column 1','Column 2']; for (sort keys %$hashref){ push @{$data{'rows'}},{ key=>$_ , value=>$hashref->{$_} }; } my $TMPL = <<'EOT'; <table border="1" cellspacing="0" cellpadding="5"> <tr> [% FOREACH col IN header %] <th>[% col %]</th> [% END %] </tr> [% FOREACH record IN rows %] <tr> <td>[% record.key %]</td> <td>[% record.value %]</td> </tr> [% END %] </table> EOT my $template = Template->new(); my $html; $template->process(\$TMPL, \%data, \$html) || die "Template process failed: ", $template->error(), "\n"; return $html; } 1;
updated : added header
poj