2014-04-19 3 views
-1

Мне нужно прочитать значения из файла, сохранить их в массиве и затем вывести значения в таблицу HTML в файле HTML. Каков наилучший способ сделать это? Используя write() и формат для записи в файл, используя CGI и печать для записи в файл или просто печать tr и td?Как вывести таблицу HTML в файл из Perl?

У меня есть три столбца и четыре строки (12 значений).

ответ

0

Просто используйте format и write() и петлю для управления входом. Например:

while($i<10){ 
     $name = $values[$i]; 
     $description = $values[$i+1]; 
     $price = $values[$i+2]; 
     write; 
     $i = $i+3; 
    } 


    format BODY = 
    <tr><td>@*</td><td>@*</td><td>[email protected]####.##</td></tr> 
      $name,   $description,       $price 
    . 
2

Мне нравятся форматы, но я бы не использовал его для этого. То, что форматы делают и хорошо, не вступают в игру здесь.

Простые print заявления сделают. splice является недооцененным встроенным, который может удалить несколько элементов из массива на одном дыхании:

use HTML::Entities qw(encode_entities); 

my @values = (
    'a' .. 'd', 
    'cats & dogs', '</div>', '"quotes"', 
    '<script src="foo.js"/>', 
    'e' .. 'f' 
    ); 

my $elements_per_row = 3; 

print "<table>\n"; 
while(my @row = splice @values, 0, $elements_per_row,()) { 
    print 
     '<tr>', 
     map( 
      { '<td>' . encode_entities($row[$_]) . '</td>' } 
      0 .. $elements_per_row - 1 
      ), 
     '</tr>', "\n" 
    } 
print "</table>\n"; 

Но, вы должны думать о том, разделяя вашу HTML из вашей программы, используя шаблонную систему какого-то. Есть несколько доступных для Perl.

Смежные вопросы