首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解Musicbrainz cpan模块的输出类型?

了解Musicbrainz cpan模块的输出类型?
EN

Stack Overflow用户
提问于 2011-03-20 10:07:20
回答 2查看 139关注 0票数 0

我正在使用Musicbrainz cpan模块查找一张专辑,但我在尝试解密收到的输出时遇到了一些问题。我使用data::Dumper来查看它,它看起来像是某种散列或数组,但当我尝试检查类型时,我遇到了问题。

代码语言:javascript
复制
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";
 }

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-03-20 10:18:53

它是一个WebService::MusicBrainz::Response对象。

代码语言:javascript
复制
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";
票数 2
EN

Stack Overflow用户

发布于 2012-12-16 23:58:51

如前所述,它是一个WebService::MusicBrainz::Response对象。您可以通过访问release_list()来检索多个结果,该方法提供了一个WebService::MusicBrainz::Response::Release对象数组。

代码语言:javascript
复制
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模块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5366310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档