natatime on Xslate
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Text::Xslate;
my $tmpl = <<'...';
<table>
[% FOR xxx IN natatime(3, elems) -%]
<tr>
[% FOR xx IN xxx %]<td>[% xx %]</td>[% END %]
</tr>
[% END -%]
</table>
...
my $xslate = Text::Xslate->new(
function => {
natatime => sub {
my ($n, $ary) = @_;
my @list = @$ary;
my @ret;
while (my @x = splice @list, 0, $n) {
push @ret, \@x;
}
return \@ret;
}
},
syntax => 'TTerse',
);
print $xslate->render_string($tmpl, {elems => [map { sprintf '%.2f', rand } 0..30]});
こんなかんじでひとつ。
Published: 2010-11-22(Mon) 02:47