代码 -
$col1->insert("_id" => '100',
"results" => {
"result" => "1",
"when" => "sunday"
}
);
错误是 -
Can't use string ("100") as a HASH ref while "strict refs" in use at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/MongoDB/Collection.pm line xyz.
这里有什么问题?
答案 0 :(得分:3)
insert
method in MongoDB::Collection想要一个hash-ref,而不是一个列表。你想这样说:
$col1->insert({
"_id" => '100',
"results" => {
"result" => "1",
"when" => "sunday"
}
});
请注意({
和})
。 insert
方法实际上采用了hash-ref参数。所以在insert
里面,它会做这样的事情:
my ($self, $obj, $opts) = @_;
if($opts) {
# Do things like $opts->{multi} ...
}
但是您的原始通话会将'_id'
放在$obj
和'100'
$opts
中,这就是您的错误消息来源。请注意,=>
只是说,
的另一种方式,因此您的insert
电话确实是:
$col1->insert("_id", '100', "results', { ... });