Мне нравятся форматы, но я бы не использовал его для этого. То, что форматы делают и хорошо, не вступают в игру здесь.
Простые 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.