2011-03-20 2 views
0

Im Musicbrainz cpan 모듈을 사용하여 앨범을 조회하지만 출력물을 해독하려고하는 데 몇 가지 문제가 있습니다. 나는 data :: Dumper를 사용하여 그것을 보았고, 어떤 종류의 해쉬 나 배열처럼 보이지만, 타입을 체크하려고 할 때 나는 문제가있다.Musicbrainz cpan 모듈의 출력 유형 이해하기?

my $ws = WebService::MusicBrainz::Release->new(); 

my $response = $ws->search({ TITLE => 'ok computer' }); 


if (ref($response) eq "REF" || ref($response) eq "SCALAR" || ref($response) eq "ARRAY" || ref($response) eq "HASH" || ref($response) eq "CODE" || ref($response) eq "GLOBE") 

{ 
print "\n What sort of thing is it? \n"; 
} 

감사

답변

2

IT는 WebService::MusicBrainz::Response 객체입니다.

use WebService::MusicBrainz::Release; 

my $ws = WebService::MusicBrainz::Release->new(); 
my $response = $ws->search({ TITLE => 'ok computer' }); 
my $release = $response->release(); # grab first one in the list 
print $release->title(), " (", $release->type(), ") - ", $release->artist()->name(), "\n"; 
+0

감사합니다.하지만 임씨는 여전히 사용법을 잘 모르고 있습니다. 주어진 예제에서 목록에있는 첫 번째 결과가 아닌 여러 결과를 얻는 방법은 무엇입니까? – asaf

+0

문서에서 복사하여 붙여 넣었습니다. 나는에 연결했다. 모듈을 사용하기위한 모든 정보가 들어 있습니다. 예를 들어,'release_list()'메소드. –

0

이미 말했듯이, WebService::MusicBrainz::Response 개체입니다. WebService::MusicBrainz::Response::Release의 배열을 제공하는 release_list()에 액세스하여 여러 결과를 검색 할 수 있습니다.

use WebService::MusicBrainz::Release; 

my $ws = WebService::MusicBrainz::Release->new(); 
my $response = $ws->search({ TITLE => 'ok computer' }); 

my @releaselist = $response->release_list(); 
foreach my $release (@releaselist) { 
    print $release->title(), " - ", $release->artist()->name(), "\n"; 
} 

그러나, 펄 모듈 다소 관리되지이며 사용되는 XML Web service Version 1이 중단된다.

웹 서비스의 Version 2을 사용하는 것이 좋습니다. python-musicbrainzngs에는 새로운 (차세대 체계) 웹 서비스를 사용하는 파이썬 모듈이 있습니다.