我必须从文件中读取值,将它们存储在数组中,然后将值输出到HTML文件中的HTML表中。做这个的最好方式是什么?使用write()和format写入文件,使用CGI和print来写入文件,或者只是打印tr和#t?s?
我有三列四行(12个值)。
答案 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)
只需使用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>$@####.##</td></tr>
$name, $description, $price
.