【发布时间】:2011-08-03 15:39:36
【问题描述】:
我是 Perl 的新手。 我有一个在 http://localhost:19000 运行的 JSON-RPC 服务器,我需要调用 checkEmail() 方法。
use JSON::RPC::Client;
my $client = new JSON::RPC::Client;
my $url = 'http://localhost:19000';
my $callobj = {
method => 'checkEmail',
params => [ 'rprikhodchenko@gmail.com' ],
};
my $res = $client->call($url, $callobj);
if($res) {
if ($res->is_error) {
print "Error : ", $res->error_message;
}
else {
print $res->result;
}
}
else {
print $client->status_line;
}
当我尝试启动它时,它会显示以下信息:
perl ./check_ac.pl
Not a HASH reference at /usr/local/share/perl/5.10.1/JSON/RPC/Client.pm line 193.
UPD:
完整的堆栈跟踪:
perl -MCarp::Always ./check_ac.pl
Not a HASH reference at /usr/local/share/perl/5.10.1/JSON/RPC/Client.pm line 193
JSON::RPC::ReturnObject::new('JSON::RPC::ReturnObject', 'HTTP::Response=HASH(0x9938d48)', 'JSON=SCALAR(0x96f1518)') called at /usr/local/share/perl/5.10.1/JSON/RPC/Client.pm line 118
JSON::RPC::Client::call('JSON::RPC::Client=HASH(0x944a818)', 'http://localhost:19000', 'HASH(0x96f1578)') called at ./check_ac.pl line 11
【问题讨论】:
-
使用
perl -MCarp::Always ./check_ac.pl获得完整的堆栈跟踪,并更好地了解代码中的问题所在。 -
它说“找不到 Carp/Always.pm”。我尝试使用 MCarp::Always 安装它,但找不到
-
尝试安装 Carp::Always,而不是 MCarp::Always。 -M 仅表示命令行中的“使用”。