这里面没有复杂的地方。首先,是创建一个新的MP3::Tag 对象,并将MP3文件的文件名和位置作为参数传递给对象的构造函数。然后,使用对象的get_tags()方法来读取嵌入在文件头部的元数据,作为对象的属性提供给大家。接着就可以以普通的方式访问和打印这些属性。下面是一个输出样本:
文件名:track1.mp3
艺术家:The Bungers
题目:Techno #1
签名册:Bungabom
年份:2005
类别:Rancid Trance
它所具备的这个功能使得完成在本文开始时我想大家承诺的事情十分简单——为你的所有音乐文件创建一个可打印的目录。你需要做的就是将上面的代码放在一个循环中,对你每个*.mp3文件运行它,并将输出格式化为简单易读的形式。列表B展示了如何去做。
列表B
#!/usr/bin/perl
use MP3::Tag; # import module
@files = <*.mp3>; # find MP3 files in current directory
# loop over file list
# print tag information
foreach (@files) {
$mp3 = MP3::Tag->new($_);
$mp3->get_tags();
if (exists $mp3->) {
print $_, "t", $mp3->->artist, "t", $mp3->->title, "n";
}
$mp3->close();
}
在这个例子中,当前目录中的MP3文件列表被保存在数组@files中,然后利用foreach循环迭代数组中的每一个,使用get_tags()方法获取和打印每个文件的详细元数据。
这样你就会拥有了一个自动生成的MP3目录!当你向你的收藏中添加新的音乐文件时,只要简单的运行一遍上面的脚本,它们就会自动地显示在目录列表中。这不是很整洁吗?






