2014-04-19 59 views
-1

我必须从文件读取值,将它们存储在数组中,然后将值输出到HTML文件中的HTML表格中。做这个的最好方式是什么?使用write()和format来写入文件,使用CGI和print来写入文件,或者只是打印tr和td的?如何从Perl中将HTML表格输出到文件中?

我有三列四行(12个值)。

回答

0

只需使用formatwrite()和一个循环来控制输入。像这样:

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。

相关问题