我正在使用Musicbrainz cpan模块查找一张专辑,但我在尝试解密收到的输出时遇到了一些问题。我使用data::Dumper来查看它,它看起来像是某种散列或数组,但当我尝试检查类型时,我遇到了问题。
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";
}谢谢
发布于 2011-03-20 10:18:53
它是一个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";发布于 2012-12-16 23:58:51
如前所述,它是一个WebService::MusicBrainz::Response对象。您可以通过访问release_list()来检索多个结果,该方法提供了一个WebService::MusicBrainz::Response::Release对象数组。
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";
}但是,perl模块有些不受维护,而且它正在使用XML Web service Version 1已被弃用。
您最好使用Web Service的Version 2。对于python-musicbrainzngs,有一个使用新的(下一代方案)网络服务的python模块。
https://stackoverflow.com/questions/5366310
复制相似问题