我必须从文件读取值,将它们存储在数组中,然后将值输出到HTML文件中的HTML表格中。做这个的最好方式是什么?使用write()和format来写入文件,使用CGI和print来写入文件,或者只是打印tr和td的?如何从Perl中将HTML表格输出到文件中?
我有三列四行(12个值)。
我必须从文件读取值,将它们存储在数组中,然后将值输出到HTML文件中的HTML表格中。做这个的最好方式是什么?使用write()和format来写入文件,使用CGI和print来写入文件,或者只是打印tr和td的?如何从Perl中将HTML表格输出到文件中?
我有三列四行(12个值)。
只需使用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
.
我喜欢格式,但我不会为此使用它。格式所擅长的事物在这里不会发挥作用。
简单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。