anon
anon

Reputation: 11

How can I generate HTML tables in Perl?

I need to create a 2 tables in HTML format. Each has 5 rows:

1st Table

2nd Table

If it is available the background color for the cell should be green and if not RED.

All this data is read from a file having a particular format, it is

<name of fruit/vegetable> price <available or not>

The names of fruits and vegetable do not change , it will be same for both the tables. However, it might be possible that data for a particular fruit/vegetable is not present. if it is not present the column for that should show N/A with white background.

I cannot use MIME:Lite for this. Need to use print <<ENDHTML;

Upvotes: 1

Views: 12270

Answers (1)

user3434522
user3434522

Reputation: 27

use HTML::TagTree;
use strict;

my $html = HTML::TagTree->new('html');
$html->head->title('Fruits');

my $table = $html->body->table();
$table->tr->td('Fruits','colspan=6');
$table->tr->td('February','colspan=6');
my @fruits = qw(apples bananas coconut dates figs guava);
my @rates = (10,20,30,40,50,60);
my $tr_fruits = $table->tr;
my $tr_rates = $table->tr;
my $tr_available = $table->tr;
for (my $col=0; $col<6; $col++) {
   $tr_fruits->td($fruits[$col]);
   $tr_rates->td($rates[$col]);
   # Randomly make available
   my $available = int(rand(1000)/500 + .5);
   if ($available) {
      $tr_available->td('Available','style=background-color:green');
   } else {
      $tr_available->td('Out of Stock','style=background-color:red');
   }
}
print $html->print_html();

Upvotes: 1

Related Questions