将DBIx :: Class :: Result转换为哈希

Bac*_*itz 2 perl dbix-class

使用DBIx :: Class,谢天谢地,我找到了解决问题的方法.但我相信必须有一个更好的方式.

my $record = $schema->resultset("food")->create({name=>"bacon"});
Run Code Online (Sandbox Code Playgroud)

如何将此记录转换为简单的hashref,而不必在此之后立即进行此调用.

my record = $schema->resultset("food")->search({name=>"bacon"})->hashref_array();
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望能够编写一个简单的代码片段

 {record=> $record} 
Run Code Online (Sandbox Code Playgroud)

代替

{record => {name => $record->name, $record->food_id, ...}}
Run Code Online (Sandbox Code Playgroud)

这会让我感到疯狂,因为这个表有很多列.

oal*_*ers 5

我猜你在说什么DBIx::Class

my $record = $schema->resultset("food")->create({name=>"bacon"});
my %record_columns = $record->get_columns;

# or, to get a HashRef directly
my $cols = { $record->get_columns };

# or, as you've asked for
my $foo = { record => { $record->get_columns } };
Run Code Online (Sandbox Code Playgroud)