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
updated : added header pojpackage 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;
|
|---|