名前の通り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 件のコメント:
コメントを投稿