名前の通りIteratorをArrayに変換する。
作成の動機はHTML::Template::Proに直接IteratorやORMのrow objectを渡せないのでiteratorをarray(ref)?に変換したかったから。
use HTML::Template::Pro;
use MyDB; # using DBIx::Skinny
use Iterator::ToArray qw/to_array/;
my $db = MyDB->new(...);
my $iter = $db->search(
'hige_tbl',
{ length >= 30 }
);
my @array = to_array $iter, sub {
+{ id => $_->id, 'length' => $_->length }
};
my $html = HTML::Template::Pro->new(
filename => $file
);
$html->param( hige_loop => \@array );
毎回↓みたいにwhileで$iter->next()を呼ぶのにいい加減あきた。
my @array;
while ( defined ( my $row = $iter->next() ) {
push @array, {
id => $row->id,
length => $row->length,
};
}
0 件のコメント:
コメントを投稿