DBIC で検索結果のレコードをハッシュで受け取る方法
なぜか、perldoc DBIx::Class::ResultSet に get_column() は載ってるのに、get_columns() が載っていなかったのでメモです。
$col1 = $rs->get_column('column1');
とかじゃなくて、
{ 'column1' => 'value1', 'column2' => 'value2', 'column3' => 'value3', . . . }
みたいに一気に取りたい時は、
my $rs = $schema->resultset('Table')->find($id); $row = +{ $rs->get_columns };
で行けます。search() で取った複数レコードの場合とかは、
my @rows = map +{ $_->get_columns }, $rs->all;
で。
as_fdat() でも行けるのですが、
__PACKAGE__->load_components("PK::Auto", "Core", "AsFdat");
しなくて良い分楽です。