1

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

1st Table

  • 1st row has FRUITS in it, occupying all columns
  • 2nd row has January(month), occupying all columns
  • 3rd row has names of some 6 fruits (apple, orange, grapes,...)These names do not change. so this row has 6 columns
  • 4th row has rates for each fruit ( 10,20,30..) so this has 6 columns.
  • 5th row has corresponding message for each fruit showing as Available or not.

2nd Table

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

  • 1st row has VEGETABLES in it, occupying all columns
  • 2nd row has February(month), occupying all columns
  • 3rd row has names of some 6 vegetables (tomato, potato..)These names do not change. so this row has 6 columns
  • 4th row has rates for each vegetable ( 10,20,30..) so this has 6 columns.
  • 5th row has corresponding message for each vegetable showing as Available or not.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;

3
  • 4
    If this is homework, please label it as such. Commented Mar 19, 2010 at 11:59
  • 1
    Where would MIME::Lite even come in to the picture? Anyway, catb.org/~esr/faqs/smart-questions.html Commented Mar 19, 2010 at 13:09
  • What have you tried so far? There must be zillions of examples of this in Google. Searching for "html table perl" has this as the third hit: osstips.wordpress.com/2005/12/13/… Commented Mar 19, 2010 at 16:17

1 Answer 1

1
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();
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.