如何将HTML表格输出到Perl文件中?

时间:2014-04-19 19:39:25

标签: perl printing html-table cgi

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

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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>$@####.##</td></tr>
            $name,          $description,                         $price
    .