ما هي أفضل طريقة للحصول على معلومات كدب لCD الصوت في بيرل؟
سؤال
ما هي أفضل طريقة للحصول على السلاح بالملكية ومؤتمر نزع السلاح المسار أسماء من قرص مضغوط صوتي؟ حاولت هذه الوحدة، لكنه لم يفعل العمل.
#!/usr/bin/env perl
use warnings;
use strict;
use CDDB_get qw( get_cddb );
my %config;
$config{CDDB_HOST} = "freedb.freedb.org";
$config{CDDB_PORT} = 8880;
$config{CDDB_MODE} = "cddb";
$config{CD_DEVICE} = "/dev/sr1";
# user interaction welcome?
$config{input} = 1;
my %cd = get_cddb( \%config ); # line 16
print "$_ : $cd{$_}\n" for keys %cd;
unless( defined $cd{title} ) {
die "no cddb entry found";
}
print "artist: $cd{artist}\n";
print "title: $cd{title}\n";
print "category: $cd{cat}\n";
print "cddbid: $cd{id}\n";
print "trackno: $cd{tno}\n";
my $n = 1;
for my $i ( @{$cd{track}} ) {
print "track $n: $i\n";
$n++;
}
# OUT:
# Odd number of elements in hash assignment at ./cddb_get.pl line 16.
# Use of uninitialized value in list assignment at ./cddb_get.pl line 16.
# Use of uninitialized value in concatenation (.) or string at ./cddb_get.pl line 18.
# :
# no cddb entry found at ./cddb_get.pl line 21.
المحلول
ومحاولة وضع
BEGIN { $CDDB_get::debug = 1 }
وقبل خط use CDDB_get
من أجل الحصول على التصحيح الإخراج إلى STDERR.
نصائح أخرى
هل أنت متأكد من URL API لفريدب هو الصحيح في وحدة؟
هل حاولت HTTP بدلا من CDDBP؟
<اقتباس فقرة>وتكوين CDDB1- أو فريدب على علم برنامج للإشارة إلى freedb.freedb.org (عشوائية فريدب الخادم) ك كدب / فريدب خادم.
وكافة ملقمات فريدب الرسمية هي تشغيل cddbp في ميناء 8880 والمتشعب في المنفذ 80. المسار ل http الوصول هو /~cddb/cddb.cgi.
اقتباس فقرة>وأود أن تنظر تبحث المعلومات حتى على musicbrainz.org بدلا من ذلك.
وعن طريق MusicBrainz :: DiscID للعثور على discid من قرص مضغوط وخدمة ويب :: MusicBrainz لاسترداد البيانات من السهل جدا:
#!/usr/bin/perl
use strict;
use warnings;
use MusicBrainz::DiscID;
use WebService::MusicBrainz;
my $discid=MusicBrainz::DiscID->new;
if ( !$discid->read ) {
print STDERR "Error: " . $discid->error_msg . "\n";
exit 1;
}
print "DiscID: " . $discid->id . "\n";
my $service=WebService::MusicBrainz->new_release;
my $response=$service->search({ DISCID=>$discid->id });
my $release=$response->release;
print "ARTIST: " . $release->artist->name . "\n";
print "ALBUM: " . $release->title . "\n";