是否有用于使用SQL语言访问复杂结构数据的Perl模块?

我经常将大量数据保存到哈希变量中,或根据条件获取数据.这不方便,所以我想要一个用SQL作为NoSQL访问数据的模块.我找到了
DBD::RAM,但有一个较小的模块吗?

例如:像MySQL表这样的哈希数据:

{
   "table": "company",
   "rows" : [
       {
         "name": "baidu",
         "location": "China"
       },
       {
         "name": "taobao",
         "location": "China"
       }
    ]
}

通常,插入如下记录:

my %new_row = (name=>xxx, location=>yyy);
push (@{$hash->{rows}}, \%new_row);

如果我这样做,会有很多哈希变量,所以我想这样做更像:

$handle->insert('insert into company values("xxx", "yyy")');

my ($name, $location) = $handle->select_unqiue_record(<<"_EOC_";
    select name, location from company where name="baidu"
_EOC_);

最佳答案 我推荐
https://metacpan.org/module/DBIx::DataModel.

一旦设置了描述目标表的Schema – 并且您可以通过逆向工程自动执行此操作 – 您可以直接插入哈希,如下所示:

my $table = $schema->table($table_name);
my $id = $table->insert($hash_ref);

实际上,您可以传递DBIx :: DataModel一个hash_refs数组(根据您的问题),它将为您插入每个.请参阅文档:https://metacpan.org/module/DBIx::DataModel#Insert

点赞