나는 Net::OAuth 모듈을 사용하여 Yammer API로 권한을 부여하려고 노력하고 있으며, CPAN의 개요에서 가져온 다음 코드 스 니펫을 가지고 있습니다.Perl Net :: OAuth 문제
Expected a hash! at /Library/Perl/5.8.8/Net/OAuth/Message.pm line 241.
내가 명백한 구문 오류를 만들어 본 적이 또는 내가 OAuth를 모듈 자체에보고해야 할 것입니다 : 내 테스트를 시도하고 실행하면 다음과 같이
$Net::OAuth::PROTOCOL_VERSION = Net::OAuth::PROTOCOL_VERSION_1_0A;
my $q = new CGI;
my $request = Net::OAuth->request("request token")->from_hash($q->Vars,
request_url => $self->_request_token_url,
request_method => $q->request_method,
consumer_secret => $self->consumer_private,
);
는하지만 오류가 발생합니다? Net::OAuth::Message
sub from_hash {
my $proto = shift;
my $class = ref $proto || $proto;
my $hash = shift;
if (ref $hash ne 'HASH') {
die 'Expected a hash!';
}
my %api_params = @_;
에서
나는 처음에 이것을 생각했으나 올바르지 않습니다. ccheneson에 의해 링크 된 소스를 살펴보면 첫 번째 인수 만 해시 참조로 간주되고 나머지는 @_에서 별도의 해시로 가져옵니다. –
게다가 해시 생성자의 요소 수가 홀수입니다.) –
$ q-> Vars가 목록 컨텍스트에서 병합 된 해시를 반환하기 때문에 요소 수가 홀수가 아닙니다. 하지만 이것이 해결책의 핵심이었습니다. 내 편집 된 답변보기 –